Sự khác biệt giữa các phương pháp empty()
và remove()
trong jQuery
là gì và khi nào chúng ta gọi bất kỳ phương pháp nào trong số này, các đối tượng được tạo sẽ bị hủy và bộ nhớ được giải phóng?jQuery rỗng() vs remove()
Trả lời
empty()
sẽ xóa tất cả nội dung của lựa chọn.remove()
sẽ xóa lựa chọn và nội dung của nó.
xem xét:
<div>
<p><strong>foo</strong></p>
</div>
$('p').empty(); // --> "<div><p></p></div>"
// whereas,
$('p').remove(); // --> "<div></div>"
Cả hai loại bỏ các đối tượng DOM và nên giải phóng bộ nhớ chúng chiếm, vâng.
Tài liệu giải thích rất rõ. Nó cũng chứa các ví dụ:
trước:
<div class="container">
<div class="hello">Hello</div>
<div class="goodbye">Goodbye</div>
</div>
lệnh .remove():
$('.hello').remove();
sau:
<div class="container">
<div class="goodbye">Goodbye</div>
</div>
trước:
<div class="container">
<div class="hello">Hello</div>
<div class="goodbye">Goodbye</div>
</div>
.empty():
$('.hello').empty();
sau:
<div class="container">
<div class="hello"></div>
<div class="goodbye">Goodbye</div>
</div>
Theo như bộ nhớ là có liên quan, một khi một ele ment được loại bỏ khỏi DOM và không có thêm tham chiếu đến nó, bộ thu gom rác sẽ lấy lại bộ nhớ khi nó chạy.
Câu trả lời hay ... thnx :) – Bhupi
trống sẽ không chạm vào thuộc tính của bộ chọn. Nếu bạn muốn loại bỏ các thuộc tính của phần tử selector, tôi nhận thấy rằng jQuery removeAttr và removeClass là lỗi trong firefox. Vì vậy, tùy chọn tôi đã có là sử dụng phương thức remove và thêm phần tử container một lần nữa, sau đó nối thêm các nút con cho cùng. – randominstanceOfLivingThing
tương tự như vậy bạn có thể giải thích tách() cũng với tương ứng của hai bên trên .... – Krish
$("body").empty()
- nó loại bỏ các yếu tố HTML DOM bên trong thẻ nội dung -
khi bạn khai báo $("body").remove()
- nó loại bỏ toàn bộ DOM HTML cùng với TAG cơ thể.
Câu trả lời này cung cấp những gì đang thiếu trong các câu trả lời hiện có đã tồn tại trong ba năm? – jcsanyi
- 1. jQuery remove() gọi lại?
- 2. jquery: nếu ul rỗng
- 3. rỗng vs chuỗi rỗng trong Oracle
- 4. JQuery Remove() không hoạt động
- 5. Remove văn bản với jQuery
- 6. Jquery - Remove() sau khi ẩn()
- 7. remove append cuối cùng yếu tố jquery
- 8. remove css: Hover thuộc tính với jquery
- 9. Unbind - Remove - Giết một plugin jQuery
- 10. jquery remove() nhảy lên đầu trang
- 11. Jquery - JSON.stringify, mảng rỗng
- 12. jQuery $ (this) .remove() không hoạt động sau khi gắn thêm
- 13. jQuery hiệu ứng nổi bật trước khi remove()
- 14. jQuery remove (selector) dường như không làm việc
- 15. Remove giá trị của đầu vào sử dụng jQuery
- 16. Remove phần tử DOM từ biến với jquery
- 17. jquery yếu tố remove html bên trong biến (jquery đối tượng)
- 18. Bộ chọn trống jQuery (bộ chọn rỗng)
- 19. Jquery nếu trường mật khẩu trống rỗng
- 20. JQuery val() trả về chuỗi rỗng
- 21. Tablesorter - Remove Filter From Columns
- 22. jQuery: append vs appendTo
- 23. Jquery WCF vs Pagemethods
- 24. Jquery Chaining vs Callbacks
- 25. jquery $ .post() vs $ .get()
- 26. JQuery vs ExtJS
- 27. jQuery AJAX vs UpdatePanel
- 28. jQuery:. $ (This) vs. này $()
- 29. Sencha vs. jQuery Touch
- 30. window.onload vs document.ready jQuery
Điều gì về xử lý sự kiện? Tôi có một trường hợp lạ, nơi trống + nối thêm hai lần, với các phụ thêm khác nhau gây ra tập thứ hai của các mục được nối thêm để thực hiện các trình xử lý của tập đầu tiên. – Killroy
@ quá muộn, nhưng họ cũng loại bỏ trình xử lý. có một cơ hội mà bạn có các trình xử lý đó được đăng ký với một hàm như 'live' hoặc' delegate'. – undone