我有我的小问题。是否有任何选项可以使用 jquery 复制多个元素?我有一个元素列表,我可以克隆、复制 fe 7 次吗?
<ul id="my_list>
<li class="one_element>data</li>
</ul>
还有一些jquery,我不知道怎么写:
var mylist = $('#my_list');
myList.find('li').clone(2);
你能帮我吗?谢谢。
我有我的小问题。是否有任何选项可以使用 jquery 复制多个元素?我有一个元素列表,我可以克隆、复制 fe 7 次吗?
<ul id="my_list>
<li class="one_element>data</li>
</ul>
还有一些jquery,我不知道怎么写:
var mylist = $('#my_list');
myList.find('li').clone(2);
你能帮我吗?谢谢。
var mylist = $('#my_list');
for ( i = 0; i < 7;i++){
mylist.find('li:first').clone().appendTo(mylist);
}
您可以轻松使用$.each
jquery 循环包装器:
$.each(new Array(7),function(){
$('#list li:first').clone().appendTo('#list');
});
您可以通过链接克隆来执行两次:
var mylist = $('#my_list');
myList.find('li:first').clone().appendTo(myList).clone().appendTo(myList);
var n=0;
var mclon = $('#my_list');
for ( i = 0; i < 7;i++){
mclon.clone().attr('id', 'id'+(n++) ).insertAfter( mclon );
}
使用.clone()
七次。
说明:这样创建的所有七个克隆都具有唯一的 id(id=my_list+n
其中 n 取决于迭代次数)。
如果您不想要深度克隆,那么您可以使用数组join()
方法创建一个与n
元素数量相对应的 HTMLString,如下所示:
var elementString = new Array(++n).join($(selector).get(0).outerHTML)
您可以将其附加到您希望的任何元素。
基本上,我们将元素的outerHTML传递给数组join()
方法,其长度1
大于所需的克隆数。这是因为该join()
方法在第一个元素之后开始追加并在最后一个元素之前停止。
IE,
[null,null,null,null].join(","); // results in ",,," not ",,,,"
在您的情况下,您可以执行以下操作:
$("ul").append(new Array(8).join($(".one_element").get(0).outerHTML));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="my_list">
<li class="one_element">data</li>
</ul>