2017-06-22 2 views
0

Was ich versuche zu tun:append geklont div, entfernen Sie eine Klasse von div

Wenn eine beliebige Taste der .plus Klasse klicken, Klon die div #plusclone die Tasten mit der Klasse entfernen .plus und anhängen an die div #eingabemsearch.

Was mein Code ist nur Clon .plus und fügen Sie es an. Also ziemlich genau das Gegenteil.

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

Es könnte wirklich dumm sein, aber ich habe viele untersch Dinge ausprobiert und kann nicht damit es funktioniert.

Antwort

4

Ihr Problem ist aufgrund der find() wie gibt das .plus Element, nicht das übergeordnete Element, das Sie geklont. Um das Problem zu beheben, müssen Sie Ihre Logik einfach neu anordnen, um den Verweis auf den ursprünglichen Klon beizubehalten. Beachten Sie auch, dass Sie die id aus dem Klon entfernen müssen, um Duplikate zu vermeiden. Versuchen Sie dies:

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

Vielen Dank. Das hat perfekt funktioniert! –

2

Sie verwenden die find() Methode so die Referenz auf dieses Element hält (das entfernt .plus Element), um zurück zum vorherigen Referenz Verwendung end() Verfahren zu erhalten. Das id Attribut sollte eindeutig sein, also entfernen Sie es mit der Methode removeAttr() oder aktualisieren Sie es mit einer eindeutigen ID unter Verwendung der attr() Methode.

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

oder den Verweis des geklonten Elements in einer Variablen speichern und den Rest für das zwischengespeicherte Objekt übernehmen.

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

Es gibt keine Notwendigkeit für die '. End()' auf Ihrer "oder" -Option. Es ist auch wichtig, die ID zu entfernen (wie Rory). –

+0

@ T.J.Crowder: danke ich werde das entfernen .... –