javascript - 如何根据输入数字 .clone() 元素
问题描述
我需要根据输入数字克隆元素。因此,如果我选择 1,我将拥有一个克隆元素,如果我选择 2,我将拥有两个克隆元素。
我已经尝试过$("elementtoclone").clone().appendTo("clonecontainer")
并且它可以工作,但只是第一次,因为当我选择另一个数字时,它只会附加另一个克隆。例如,如果我选择 1,我将拥有那个,但如果我选择 2,我将拥有三个,但我只需要两个。
所以我一直认为这样做的逻辑方法是使用 .html() 方法而不是 appendTo()。
所以我需要这样的东西:
function letsClone(times){
var clons;
for(var i=0; i<times; i++){
clons = clons + $("#original").clone();
}
$("#clonecontainer").html(clons);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="number" onchange="letsClone(this.value)">
<div id="original"><p>I'm gonna be cloned</p></div>
<div id="clonecontainer" style="border:1px solid red">
</div>
但这显然不起作用,因为这是我添加字符串的方式,而不是 DOM 元素。
那么有没有办法将克隆的元素添加到变量中,然后使用 .html() 方法来显示它们?
解决方案
清除#clonecontainer
每个函数调用中的 html。我也更喜欢oninput而不是onchange。
我相信您只想克隆来自#original
.
function letsClone(times){
$("#clonecontainer").html('');
for(var i=0; i<times; i++){
var clons = $("#original > p").clone();
$("#clonecontainer").append(clons);
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="number" oninput="letsClone(this.value)">
<div id="original"><p>I'm gonna be cloned</p></div>
<div id="clonecontainer" style="border:1px solid red">
</div>
如果你真的想克隆整个#original
请注意:该属性Element.id
在文档中必须是唯一的,请改用类。在这种情况下,克隆使用first()
类的。
您可以尝试以下方法:
function letsClone(times){
$("#clonecontainer").html('');
for(var i=0; i<times; i++){
var clons = $(".original").first().clone();
$("#clonecontainer").append(clons);
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="number" oninput="letsClone(this.value)">
<div class="original"><p>I'm gonna be cloned</p></div>
<div id="clonecontainer" style="border:1px solid red">
</div>
推荐阅读
- r - 如何在 R 中创建一个用户生成的函数,将列中的所有值转换为日期格式?
- firebase - Flutter/Firebase 错误 - 未处理的异常:类型 '_CompactLinkedHashSet
' 不是类型 'FutureOr 的子类型 >>' - java - AltUnityDriver create-无法执行命令'mobiledevice tunnel -u (device udid)13000 13000'
- blazor - Blazor - 在 RenderFragment 部分刷新子组件
- shell - 如何将变量从一个目录存储或捕获到另一个目录并在 Linux 中使用 cut 命令执行
- reactjs - 在 Windows 上运行多个反应应用程序时无法识别端口
- python - ImportError:Apache 中没有名为 cx_Oracle 的模块
- r - 使用 R 中的 purr 包匹配和分析数据
- spring - Springboot 从 S3 上传和下载文件(多种格式)
- python - 如何将自定义装饰器添加到 FastAPI 路由?