动态填充列表(jQuery)

时间:2010-02-04 14:13:17

标签: jquery list clone append populate

<ul>
  <li>item x</li>
  <li>item y</li>
  <li>item z</li>
</ul>
<a href="#">Populate</a>

我想在点击“填充”链接时复制(复制和附加)所有<li>个。我该怎么做?

由于

4 个答案:

答案 0 :(得分:11)

快速简洁的版本。

$('a').click(function() {
    $('ul').children().clone().appendTo('ul');
})

当然,您可能希望使用类或ID定义“a”和“ul”,以便更具体。

编辑:

为了扩展上面给出的免责声明,这将是一个有点脆弱的解决方案,因为它将影响所有'a'和'ul'元素。这可能不是你想要的。

更好的形式是给你的html元素类或id,然后将事件附加到那些。

示例:

$('#myPopulateAnchorElement').click(function() {
 $('#myExpandableUL').children().clone().appendTo('#myExpandableUL');
});

<ul id='myExpandableUL'>
  <li>item x</li>
  <li>item y</li>
  <li>item z</li>
</ul>
<a href="#" id='myPopulateAnchorElement'>Populate</a>

感谢Ed Woodcock建议加入先发制人的解决方案。

答案 1 :(得分:1)

试试这个:

$(function(){
   $('.anchorClass').click(function(){
        var ul = $('.ulClass');
        ul.append(ul.html());
   });
});

编辑:

您需要将html更改为:

  <ul class="ulClass">
  <li>item x</li>
  <li>item y</li>
  <li>item z</li>
</ul>
<a class="anchorClass" href="#">Populate</a>

答案 2 :(得分:1)

var ul = $('ul');

$('a').click(function(){
    ul.children().clone(true).appendTo(ul);
});

答案 3 :(得分:0)

您可以这样做:

$('a').click(function(){
   $('li').each(function(){
      $(this).clone().appendTo('your selector where to put the copy');
   })
})