Chciałbym zmodyfikować poddrze Dom DOM i przywrócić go po pewnym czasie. Jak mogę zapisać kopię drzewa podarchiwum (aby grać z rzeczywistym poddrzewem)? Jak mogę później przywrócić zapisaną kopię?Jak klonować (i przywracać) poddrzewo DOM
Odpowiedz
Jeśli czytam tego prawa, to myślę, że wszystko, co musisz zrobić to:
var DomTreeCopy = $('parentElementSelector').clone(true,true);
A następnie ponownie załączyć DomTreeCopy
(zamiast oryginalny):
$('parentElementSelector').replaceWith(DomTreeCopy);
lub dodać go do DOM oprócz oryginału:
$(DomTreeCopy).insertAfter($('parentElementSelector'));
Odniesienia:
można użyć $.data()
... metoda
$.data(document.body, "sortElement", "0"); //set value
$.data(document.body, "sortElement"); //read value
było można przechowywać wszystkie waht chcesz w rodzaju słowniku - a następnie używać go później.
Ohh .. To jest bardziej poprawne i poprawne! –
Możesz przechowywać sklonowany obiekt gdzie indziej w DOM. Zmodyfikuj DOM, który jest widoczny. Gdy potrzebujesz rzeczywistej wartości, możesz śledzić ją z miejsca, do którego dołączyłeś.
<div id="oldInfo"></div>
$("#youActualDom").clone().appendTo("#oldInfo").hide();
Następnie zapisuje oryginalne DOM z $("#oldInfo")
pomocą prostych javascript:
var elem = document.getElementById('theElement'),
backupElem = elem.cloneNode(true);
// Your tinkering with the original
elem.parentNode.replaceChild(backupElem, elem);
Należy pamiętać, że za pomocą tej metody funkcje obsługi zdarzeń są przywracane:
, a nie. Ale możesz też je utworzyć, ponieważ są zwykłymi funkcjami.
Okazało się, myliłem się co do tego. Obsługa zdarzeń jest zachowywana, ponieważ jest to oryginalny DOM, który przywracasz. Jeśli kopiowałeś go i dołączałeś w innym miejscu, programy obsługi zdarzeń nie byłyby kopiowane. This demo pokazuje, że procedura obsługi zdarzeń pozostaje.
Czy możesz bardziej szczegółowo opisać obsługę zdarzeń? – BreakPhreak
@BreakPhreak Wygląda na to, że się myliłem. Zobacz moją odpowiedź. –
- 1. Jak klonować lub ponownie wysyłać zdarzenia DOM?
- 2. Jak klonować() StringBuilder
- 3. Jak klonować obiekt BufferedImage
- 4. Jak klonować z GitHub
- 5. Android onConfigurationChanged: jak zapisywać i przywracać stos fragmentów?
- 6. Jak usunąć wcześniej dodane poddrzewo git i jego historię
- 7. Jak klonować obiekty w NHibernate?
- 8. Jak klonować() element n razy?
- 9. Jak klonować obiekty w Scali?
- 10. Jak przywracać motyw z Darcula do domyślnego w Studio Android
- 11. Jak klonować UIElement w WinRT XAML C#?
- 12. Framework Phake: jak klonować obiekty na captureAll?
- 13. jak mogę git klonować: //foo.git PONOWNIE?
- 14. Jak mogę klonować/duplikować UIView na iOS?
- 15. Dokumentacja "document.id" i DOM
- 16. Eksportuj poddrzewo w Git z historią
- 17. Jak mogę wyodrębnić poddrzewo z mojego repozytorium SVN do nowego?
- 18. Jak przenieść do innego poddrzewie poddrzewo w emacs org-mode
- 19. Czy można klonować strumień .NET?
- 20. Dołączanie elementu DOM dwukrotnie (jQuery)
- 21. Ustawianie przestrzeni i przedrostków w dokumencie DOM DOM
- 22. Łańcuch zdarzeń i iteracji DOM
- 23. Jak głęboko klonować połączone obiekty w języku C#?
- 24. Jak mogę klonować obiekt (głęboką kopię) w Dart?
- 25. Jak usunąć element dom?
- 26. Jak podłączyć wydarzenie DOM?
- 27. Jak kopiować/klonować środowisko wirtualne z serwera WWW
- 28. Jak można "klonować" środowisko conda do środowiska root?
- 29. Jak git klonować konkretny tag tylko bez otrzymywania całego repo?
- 30. . Analizator DOM DOM .NET HTML?
Dzięki. Udostępnianie upvote, nie oznaczanie jako idealnej odpowiedzi, skoro klonowanie nie będzie obsługiwać stylów CSS/programów obsługi zdarzeń? Mam rację, proszę? – BreakPhreak
Czy przeczytałeś materiał referencyjny dla 'clone()'? Pierwsze "prawdziwe, prawdziwe" argumenty przekazane do metody oznaczają, że kopiuje dane i zdarzenia związane z elementami.Pierwsze "prawda" odnosi się do sklonowanego elementu, a drugie "prawda" do dzieci sklonowanego elementu. Dopóki twój arkusz stylów obsługuje selektory dopasowane przez sklonowane elementy, to tak, CSS zastosuje się/zostanie zastosowany automatycznie. –
Dzięki za wskazanie mi niektórych brakujących szczegółów. – BreakPhreak