<ul>
<li>item x</li>
<li>item y</li>
<li>item z</li>
</ul>
<a href="#">Populate</a>
<li>
「入力」リンクをクリックしたときにすべてを複製(コピーして追加)したい。どうすればいいのですか?
ありがとう
迅速かつ簡潔なバージョン。
$('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に感謝します。
これを試して:
$(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>
var ul = $('ul');
$('a').click(function(){
ul.children().clone(true).appendTo(ul);
});
あなたはこのようなことをすることができます:
$('a').click(function(){
$('li').each(function(){
$(this).clone().appendTo('your selector where to put the copy');
})
})