В чем разница между методами empty()
и , и когда мы вызываем любой из этих методов, создаваемые объекты будут уничтожены, а память освобождена?remove()
jQuery
Ответы:
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>
.удалять():
$('.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 вместе с тегом тела.