Angenommen, ich habe drei <div>
Elemente auf einer Seite. Wie kann ich die Positionen des ersten und dritten tauschen <div>
? jQuery ist in Ordnung.
javascript
jquery
dom
Ader
quelle
quelle
var html = $('#container').html(); ...; $('#container').html(html);
Es ist nicht erforderlich, eine Bibliothek für eine so triviale Aufgabe zu verwenden:
Dies berücksichtigt die Tatsache, dass
getElementsByTagName
eine Live-NodeList zurückgegeben wird, die automatisch aktualisiert wird, um die Reihenfolge der Elemente im DOM widerzuspiegeln, wenn sie bearbeitet werden.Sie könnten auch verwenden:
und es gibt verschiedene andere mögliche Permutationen, wenn Sie experimentieren möchten:
zum Beispiel :-)
quelle
.vorher und nachher
Verwenden Sie moderne Vanille JS! Viel besser / sauberer als zuvor. Keine Notwendigkeit, einen Elternteil zu referenzieren.
Browser-Unterstützung - 94,23% global ab 20. Juli
quelle
und benutze es so:
Wenn Sie jQuery nicht verwenden möchten, können Sie die Funktion problemlos anpassen.
quelle
Diese Funktion mag seltsam erscheinen, stützt sich jedoch stark auf Standards, um ordnungsgemäß zu funktionieren. Tatsächlich scheint es besser zu funktionieren als die von tvanfosson veröffentlichte jQuery-Version, die den Tausch nur zweimal durchzuführen scheint.
Auf welche Besonderheiten stützt es sich?
quelle
Der oben erwähnte Jquery-Ansatz funktioniert. Sie können auch JQuery und CSS verwenden. Sagen Sie beispielsweise, dass Sie auf Div 1 Klasse 1 und Div 2 Klasse 2 angewendet haben (z. B. für jede Klasse von CSS, die eine bestimmte Position im Browser bereitstellt). Jetzt können Sie die Klassen mit jquery oder austauschen Javascript (das wird die Position ändern)
quelle
Tut mir leid, dass ich diesen Thread gestoßen habe. Ich bin über das Problem "DOM-Elemente tauschen" gestolpert und habe ein bisschen herumgespielt
Das Ergebnis ist eine jQuery-native "Lösung", die wirklich hübsch zu sein scheint (leider weiß ich nicht, was dabei bei den jQuery-Interna passiert).
Der Code:
Die jQuery - Dokumentation sagt , dass
insertAfter()
bewegt sich das Element und nicht wahr Klonquelle