Powiedzmy, że mam trzy <div>
elementy na stronie. Jak mogę zamienić miejscami pierwszą i trzecią <div>
? jQuery jest w porządku.
javascript
jquery
dom
rdzeń
źródło
źródło
var html = $('#container').html(); ...; $('#container').html(html);
Nie ma potrzeby używania biblioteki do tak banalnego zadania:
Uwzględnia to fakt, że
getElementsByTagName
zwraca aktywną listę NodeList, która jest automatycznie aktualizowana w celu odzwierciedlenia kolejności elementów w DOM, gdy są one manipulowane.Możesz również użyć:
i istnieje wiele innych możliwych permutacji, jeśli masz ochotę poeksperymentować:
na przykład :-)
źródło
.przed i po
Użyj nowoczesnego waniliowego JS! O wiele lepszy / czystszy niż poprzednio. Nie ma potrzeby odwoływania się do rodzica.
Obsługa przeglądarek - 94,23% globalnie, stan na lipiec 20
źródło
i użyj go w ten sposób:
jeśli nie chcesz używać jQuery, możesz łatwo dostosować tę funkcję.
źródło
Ta funkcja może wydawać się dziwna, ale w celu prawidłowego działania w dużym stopniu opiera się na standardach. W rzeczywistości może się wydawać, że działa lepiej niż wersja jQuery opublikowana przez tvanfosson, która wydaje się wykonywać wymianę tylko dwa razy.
Na jakich szczególnych normach się opiera?
źródło
Podejście jquery wymienione na górze zadziała. Możesz również użyć JQuery i CSS. Powiedzmy, że np. W Div 1 zastosowałeś class1 i div2 zastosowałeś klasę class2 (powiedzmy, że każda klasa css zapewnia określoną pozycję w przeglądarce), teraz możesz zamienić klasy, używając jquery lub javascript (który zmieni pozycję)
źródło
Przepraszam za trafienie w ten wątek, natknąłem się na problem "zamiany elementów DOM" i trochę się pobawiłem
Rezultatem jest "rozwiązanie" natywne dla jQuery, które wydaje się być naprawdę ładne (niestety nie wiem, co się dzieje z wewnętrznymi elementami jQuery podczas robienia tego)
Kod:
Dokumentacja jQuery mówi, że
insertAfter()
przenosi element i nie klonuje goźródło