3

我有我的小问题。是否有任何选项可以使用 jquery 复制多个元素?我有一个元素列表,我可以克隆、复制 fe 7 次吗?

<ul id="my_list>
   <li class="one_element>data</li>
</ul>

还有一些jquery,我不知道怎么写:

var mylist = $('#my_list');
myList.find('li').clone(2);

你能帮我吗?谢谢。

4

5 回答 5

4
var mylist = $('#my_list');
for ( i = 0; i < 7;i++){
      mylist.find('li:first').clone().appendTo(mylist);
}
于 2013-01-31T12:36:16.003 回答
2

您可以轻松使用$.eachjquery 循环包装器:

$.each(new Array(7),function(){
    $('#list li:first').clone().appendTo('#list');
});
于 2013-01-31T12:45:14.740 回答
0

您可以通过链接克隆来执行两次:

var mylist = $('#my_list');
myList.find('li:first').clone().appendTo(myList).clone().appendTo(myList);
于 2013-01-31T12:34:22.003 回答
0
  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 取决于迭代次数)。

于 2013-01-31T12:37:09.653 回答
0

如果您不想要深度克隆,那么您可以使用数组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>

于 2014-11-11T18:39:18.943 回答