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

<li>「入力」リンクをクリックしたときにすべてを複製(コピーして追加)したい。どうすればいいのですか?

ありがとう

4

4 に答える 4

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>

プリエンプティブソリューションを含めることを提案してくれたEdWoodcockに感謝します。

于 2010-02-04T14:46:32.970 に答える
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>

于 2010-02-04T14:18:29.763 に答える
1
var ul = $('ul');

$('a').click(function(){
    ul.children().clone(true).appendTo(ul);
});
于 2010-02-04T14:49:35.080 に答える
0

あなたはこのようなことをすることができます:

$('a').click(function(){
   $('li').each(function(){
      $(this).clone().appendTo('your selector where to put the copy');
   })
})
于 2010-02-04T14:22:29.363 に答える