Chcę zamienić element w DOM.
Na przykład istnieje <a>
element, który chcę zastąpić <span>
zamiast niego.
Jak bym to zrobił?
javascript
dom
o mój Boże
źródło
źródło
target.replaceWith(element);
to nowoczesny (ES5 +) sposób na zrobienie tegoOdpowiedzi:
używając replaceChild () :
źródło
a jest zastąpionym elementem A.
źródło
A.replaceWith(span)
- Nie potrzeba żadnego rodzicaFormularz ogólny:
O wiele lepszy / czystszy niż poprzednia metoda.
W Twoim przypadku użycia:
Dokumenty Mozilli
Obsługiwane przeglądarki - 94% kwiecień 2020
źródło
To pytanie jest bardzo stare, ale zacząłem się uczyć do uzyskania certyfikatu Microsoft, aw książce do nauki sugerowano użycie:
Sprawdziłem to i wydaje się, że jest obsługiwany tylko w IE. Doh ..
Pomyślałem, że dodam to tutaj jako zabawną notatkę;)
źródło
Miałem podobny problem i znalazłem ten wątek. Wymiana nie działała dla mnie, a wyjazd przez rodzica był trudny w mojej sytuacji. Inner Html zastąpił dzieci, co też nie było tym, czego chciałem. Korzystanie z externalHTML wykonało zadanie. Mam nadzieję, że to pomoże komuś innemu!
źródło
Możesz zamienić węzeł za pomocą
Node.replaceWith(newNode)
.Ten przykład powinien zachować wszystkie atrybuty i elementy podrzędne z węzła źródłowego:
źródło
Przykład wymiany elementów LI
źródło
Biorąc pod uwagę już proponowane opcje, najłatwiejsze rozwiązanie bez znalezienia rodzica:
źródło