Câu trả lời:
empty()
sẽ làm trống vùng chọn nội dung của nó, nhưng vẫn giữ nguyên vùng chọn.remove()
sẽ làm trống lựa chọn nội dung của nó và xóa chính lựa chọn.Xem xét:
<div>
<p><strong>foo</strong></p>
</div>
$('p').empty(); // --> "<div><p></p></div>"
// whereas,
$('p').remove(); // --> "<div></div>"
Cả hai đều loại bỏ các đối tượng DOM và sẽ giải phóng bộ nhớ mà chúng chiếm dụng, vâng.
Dưới đây là các liên kết đến tài liệu, cũng chứa các ví dụ:
live
hoặc delegate
.
Tài liệu giải thích nó rất tốt. 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>
.tẩy():
$('.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>
.trống():
$('.hello').empty();
sau:
<div class="container">
<div class="hello"></div>
<div class="goodbye">Goodbye</div>
</div>
Liên quan đến bộ nhớ, một khi một phần tử bị xóa khỏi DOM và không còn tham chiếu đến nó, bộ thu gom rác sẽ lấy lại bộ nhớ khi nó chạy.
$("body").empty()
- nó 'xóa các phần tử DOM HTML bên trong thẻ body -
khi bạn khai báo $("body").remove()
- nó xóa toàn bộ HTML DOM cùng với TAG nội dung.