Tôi muốn sửa đổi một subtree DOM và khôi phục lại nó sau một thời gian. Làm thế nào tôi có thể lưu một bản sao cây con sang một bên (để chơi với cây con thực tế)? Làm thế nào tôi có thể khôi phục bản sao đã lưu sau đó?Làm thế nào để sao chép (và khôi phục) một subtree DOM
Trả lời
Nếu tôi đang đọc quyền này, sau đó tôi nghĩ rằng tất cả bạn cần làm là:
var DomTreeCopy = $('parentElementSelector').clone(true,true);
Và sau đó tái gắn DomTreeCopy
(ở vị trí của gốc):
$('parentElementSelector').replaceWith(DomTreeCopy);
Hoặc để thêm nó vào DOM ngoài với bản gốc:
$(DomTreeCopy).insertAfter($('parentElementSelector'));
Tài liệu tham khảo:
bạn có thể sử dụng $.data()
... phương pháp
$.data(document.body, "sortElement", "0"); //set value
$.data(document.body, "sortElement"); //read value
đây là bạn có thể lưu trữ tất cả WAHT bạn muốn trong một loại từ điển - và sau đó tái sử dụng nó sau này.
Ohh .. Điều này hợp lệ và chính xác hơn! –
Bạn có thể lưu trữ đối tượng được sao chép ở một nơi khác trong DOM. Sửa đổi DOM hiển thị. Khi bạn yêu cầu giá trị thực tế, bạn có thể theo dõi nó từ nơi bạn đã nối.
<div id="oldInfo"></div>
$("#youActualDom").clone().appendTo("#oldInfo").hide();
Sau đó theo dõi dom ban đầu với $("#oldInfo")
Sử dụng JavaScript đơn giản:
var elem = document.getElementById('theElement'),
backupElem = elem.cloneNode(true);
// Your tinkering with the original
elem.parentNode.replaceChild(backupElem, elem);
Lưu ý rằng việc sử dụng phương pháp này, trình xử lý sự kiện của bạn là
không được khôi phục. Nhưng bạn cũng có thể sao lưu chúng, vì chúng chỉ là những chức năng bình thường.
Hóa ra, tôi đã sai về điều đó. Trình xử lý sự kiện được giữ nguyên vì đó là DOM gốc mà bạn đang khôi phục. Nếu bạn đang sao chép và thêm nó ở nơi khác, trình xử lý sự kiện sẽ không được sao chép. This demo cho thấy trình xử lý sự kiện vẫn còn.
Bạn có thể giải thích thêm về các trình xử lý sự kiện không? – BreakPhreak
@BreakPhreak Có vẻ như tôi đã sai về điều đó. Xem câu trả lời của tôi. –
- 1. Khôi phục Sao lưu Vim
- 2. Làm thế nào để khôi phục lại từ một bản sao lưu nhanh nhẹn
- 3. Làm thế nào để khôi phục một bảng duy nhất từ bản sao lưu .sql postgresql?
- 4. Sự khác nhau giữa cuộc gọi bằng cách tham chiếu và sao chép/khôi phục
- 5. Làm thế nào để lưu đối tượng C++ vào một tệp xml và khôi phục lại?
- 6. Cách sao lưu và khôi phục kho lưu trữ SVN?
- 7. Làm thế nào để khôi phục lại một bản sao git/clone sau khi treo lên bất ngờ?
- 8. Cách tạo và khôi phục bản sao lưu từ SqlAlchemy?
- 9. Làm cách nào để khôi phục một bảng từ bản sao lưu SQL Server 2005?
- 10. Làm cách nào để khôi phục/etc/nginx?
- 11. Làm thế nào để khôi phục cơ sở dữ liệu MySQL từ WAMP?
- 12. Android onConfigurationChanged: làm thế nào để lưu và khôi phục lại phân đoạn ngăn xếp?
- 13. Làm thế nào để lưu và khôi phục nhiều phiên khác nhau trong Vim?
- 14. Làm thế nào để sao chép mảng?
- 15. có cách nào để khôi phục hbase
- 16. Làm thế nào để sao chép ImageData?
- 17. Làm thế nào để thực hiện một liên kết khôi phục mật khẩu trong ASP.NET?
- 18. Làm thế nào để bạn sao chép một BufferedImage
- 19. Làm thế nào để sao chép/sao chép một bản ghi sql với CakePhp?
- 20. làm thế nào để bạn sao chép một CALayer?
- 21. Làm thế nào để sao chép một biến ruby?
- 22. Làm thế nào để sao chép sâu một cây?
- 23. Làm thế nào để sao chép một lớp python?
- 24. Làm thế nào để sao chép/sao chép một môi trường ảo từ máy chủ web
- 25. Làm cách nào để khôi phục phiên PHP?
- 26. lưu và khôi phục các biến shell
- 27. Làm cách nào để có thể khôi phục event.preventDefault?
- 28. Làm cách nào để sao lưu và khôi phục khay nhớ tạm của hệ thống trong C#?
- 29. Làm thế nào để khôi phục đáng tin cậy MySQL blobs
- 30. Cách lưu và khôi phục biểu mẫu?
Cảm ơn. Chia sẻ một upvote, không đánh dấu như một câu trả lời hoàn hảo, kể từ khi nhân bản sẽ không hỗ trợ CSS phong cách/xử lý sự kiện? Tôi có đúng không? – BreakPhreak
Bạn đã đọc tài liệu tham khảo cho 'clone()' chưa? Các đối số 'true, true' đầu tiên được truyền cho phương thức có nghĩa là nó sao chép dữ liệu và các sự kiện liên kết với các phần tử.'True' đầu tiên áp dụng cho phần tử được nhân bản, và' true' thứ hai cho con của phần tử nhân bản. Miễn là bảng định kiểu của bạn hỗ trợ các bộ chọn phù hợp với các phần tử được nhân bản thì có, CSS sẽ tự áp dụng/được áp dụng tự động. –
Cảm ơn bạn đã chỉ cho tôi một số chi tiết còn thiếu. – BreakPhreak