Gibt es in jQuery eine Möglichkeit, den Inhalt eines Elements zu klonen? Nicht das gesamte Element, nur der Inhalt (Kinder).
Ähnlich wie .html()
, aber ich bin auch daran interessiert, die mit dem Inhalt verbundenen Ereignisse zu klonen.
Ich habe .clone
gesucht, aber es scheint, dass das ganze Element geklont wird.
Danke.
Doua Beri, mit Bezug auf die jQuery-API-Dokumentation für .clone()
finden Sie, dass Sie% co_de finden %. Dadurch wird eine tiefe Kopie eines Elements (oder einer Sammlung von Elementen) einschließlich aller Daten- und Ereignisbindungen erstellt.
Sie haben dann zwei Möglichkeiten, wie Sie .clone(true,true)
verwenden.
Klonen Sie die Kinder einzeln, um eine jQuery-Sammlung mit Klonen der Kinder zu erhalten.
.clone(true,true)
Klonen Sie das äußere Element, um eine jQuery-Sammlung zu erhalten, die einen Klon des äußeren Elements enthält, das selbst Klone der Kinder enthält.
var $childClones = $("#myElement").children().clone(true,true);
Es ist etwas akademisch, welchen Ansatz Sie annehmen. In beiden Fällen sind die untergeordneten Elemente kollektiv oder einzeln verfügbar, um manipuliert und / oder in das DOM eingefügt zu werden, obwohl der Code dazu leicht abweichen würde.
Wenn Sie eine Tiefkopie möchten, klonen Sie einfach die Kinder:
$('#footer-flair').children().clone()
Und anstatt Ereignisse an bestimmte Elemente anzuhängen, hängen Sie ein Ereignis an ein Containerelement an, das untergeordnete Elemente überwacht. Auf diese Weise werden Ihre Ereignisse ausgelöst, solange das Containerelement bleibt, selbst wenn Sie tausend Elemente im Container hinzufügen / entfernen . Sie können dies auf dem body-Tag tun, wenn Sie nie möchten, dass Ihre Ereignisse verschwinden.
Verwenden Sie die Methode 'on', um Ereignisse wie folgt zu binden:
%Vor%Tags und Links javascript jquery