私はこれを使用して別のテーブルからテーブルの行をクローニングしています:避けクローンの重複
$("button[name='addItem']").click(function(){
var clone = $(this).closest('tr').clone(true);
clone.appendTo('#items tbody');
})
私は同じ項目に複数回のクローニングを回避したいのですが、私はこのような何かを試してみました:
if(!$.contains("#items tbody",clone)){
clone.appendTo('#items tbody');
}
しかし、それでも投げるのはfalse
です。
誰かがこの問題に直面しましたか?最後の例は明らかではないかもしれない
$("button[name='addItem']").click(function(){
var tr = $(this).closest('tr:not(".isCloned")'); // the TR to clone?
tr.addClass("isCloned"); // Remember I'm cloned yey!
var clone = tr.clone(true); // clone it
clone.appendTo('#items tbody');
});
が、セレクタ返す場合:.addClass()
を使用して、そのdata
後
$("button[name='addItem']").click(function(){
var tr= $(this).closest('tr'); // the TR to clone
if(tr.data("isCloned") === true) return; // Already cloned!! Stop here
tr.data("isCloned", true); // Remember I'm cloned yey!
var clone = tr.clone(true); // clone it
clone.appendTo('#items tbody');
});
別の方法について
それは本当に最初のドキュメントを読むのに役立ちありません。 '$ .contains'はセレクタ文字列とjQueryオブジェクトではなく2つのDOM要素を受け取ります。 –
ボタンをクリックすると、無効にする必要がありますか? – Malk
@削除中です。私はちょうどそれを明確にするためにその部分を貼り付けませんでした。 – Onilol