2017-06-22 7 views
0

の1つのクラスを削除します。APPENDクローンのdiv、私がやろうとしています何のdiv

クラス.plusのいずれかのボタンをクリックすると、 クローンのdiv #plusclone がクラス.plus でボタンを削除し、 div #eingabemsearchに追加します。

私のコードは、.plusをクローンして追加するだけです。だから、かなり反対です。

$(".plus").click(function(){ 
    var cloned = $('#plusclone').clone().find('.plus').remove(); 
    $("#eingabemsearch").append(cloned); 
}); 

それは本当に愚かなことかもしれないが、私は多くのdiffernetの事を試してみたし、それが仕事を得る傾けます。

答えて

4

あなたの問題はfind()によるものです。これを修正するには、元のクローンへの参照を保持するためにロジックを少し並べ替えるだけです。重複を避けるには、クローンからidを削除する必要があります。これを試してください:

$(".plus").click(function(){ 
    var $clone = $('#plusclone').clone().removeAttr('id'); 
    $clone.find('.plus').remove(); 
    $clone.appendTo("#eingabemsearch"); 
}); 
+0

ありがとうございます。それは完璧に働いた! –

2

find()メソッドを使用しているため、参照はその要素(削除された.plus要素)に保持され、以前の参照の使用end()メソッドに戻ります。 id属性は一意である必要があります。removeAttr()メソッドを使用して削除するか、attr()メソッドを使用して一意のIDで更新してください。

$(".plus").click(function(){ 
    var cloned = $('#plusclone').clone().removeAttr('id').find('.plus').remove().end(); 
    $("#eingabemsearch").append(cloned); 
}); 

または複製された要素の参照を変数に格納し、キャッシュされたオブジェクト上で残りを実行します。それは.plus要素ではなく、あなたがクローン化された親要素を返すよう

$(".plus").click(function(){ 
    var cloned = $('#plusclone').clone().removeAttr('id'); 
    cloned.find('.plus').remove(); 
    $("#eingabemsearch").append(cloned); 
}); 
+1

あなたの "or"オプションに '.end()'の必要はありません。 IDを削除することも重要です(Roryのように)。 –

+0

@ T.J.Crowder:ありがとう、私はそれを削除します.... –

関連する問題