Відповіді:
empty()
випорожнить вибір її вмісту, але збереже сам вибір.remove()
очистить його вміст і видалить сам вибір.Поміркуйте:
<div>
<p><strong>foo</strong></p>
</div>
$('p').empty(); // --> "<div><p></p></div>"
// whereas,
$('p').remove(); // --> "<div></div>"
Вони обидва видаляють об'єкти DOM і повинні звільнити пам'ять, яку вони займають, так.
Ось посилання на документацію, яка також містить приклади:
live
або delegate
.
Документація це дуже добре пояснює. Він також містить приклади:
перед:
<div class="container">
<div class="hello">Hello</div>
<div class="goodbye">Goodbye</div>
</div>
.remove ():
$('.hello').remove();
після:
<div class="container">
<div class="goodbye">Goodbye</div>
</div>
перед:
<div class="container">
<div class="hello">Hello</div>
<div class="goodbye">Goodbye</div>
</div>
.empty ():
$('.hello').empty();
після:
<div class="container">
<div class="hello"></div>
<div class="goodbye">Goodbye</div>
</div>
Що стосується пам'яті, щойно елемент буде видалено з DOM і більше не буде посилань на нього, збирач сміття поверне пам'ять під час його запуску.
$("body").empty()
- це "видаляє елементи HTML DOM всередині тегу body -
коли ви заявляєте $("body").remove()
- він видаляє весь HTML DOM разом із тілом TAG.