jQuery
中的empty()
和remove()
方法與我們調用這些方法中的任何一種方法有什麼區別,正在創建的對象將被銷燬並釋放內存?jQuery empty()vs remove()
回答
empty()
將刪除選擇的所有內容。remove()
將刪除選擇及其內容。
考慮:
<div>
<p><strong>foo</strong></p>
</div>
$('p').empty(); // --> "<div><p></p></div>"
// whereas,
$('p').remove(); // --> "<div></div>"
他們都去掉DOM對象和應釋放它們佔用內存,是的。
該文檔很好地解釋了它。它還包含例子:
前:
<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>
至於存儲器而言,一旦一個ELE ment從DOM中被移除,並且沒有更多的引用,垃圾收集器在運行時將回收內存。
很好的回答... thnx :) – Bhupi 2011-07-29 06:36:03
空不會觸及選擇器的屬性。如果你想刪除selector元素的屬性,我注意到jQuery removeAttr和removeClass在Firefox中是buggy。所以我的選擇是使用remove方法並再次添加容器元素,然後將子節點添加到相同的位置。 – randominstanceOfLivingThing 2013-12-12 17:56:36
類似地,你可以解釋detach()也分別與上述兩個... – Krish 2016-04-28 07:39:00
$("body").empty()
- 它是消除身體標記中的HTML DOM元素 -
$("body").remove()
- 它刪除整個HTML DOM與身體一起TAG。
這個答案在現有答案中缺少三年的答案嗎? – jcsanyi 2013-08-03 06:06:14
- 1. Empty/Remove Puppet Clientbucket
- 2. replaceWith(),remove()和empty()不工作
- 3. 性能:jQuery remove()vs JavaScript removeChild()
- 4. $ .empty()vs Backbone的View.remove()?
- 5. PHP filter_has_var vs empty?
- 6. php:if($ some_var!='')vs. isset/empty
- 7. Jquery gallery empty/append
- 8. 純jQuery替代jQuery的.remove()
- 9. jQuery if div empty
- 10. Powershell - 「Clear-Item variable:」vs「Remove-Variable」
- 11. jquery toggle append remove
- 12. jQuery remove()回調?
- 13. jQuery remove()函數
- 14. jquery .remove回來
- 15. jquery .remove()問題
- 16. jQuery - 差異.remove()與.html('')
- 17. jQuery,.empty()和內存
- 18. jQuery .remove()不刪除
- 19. jquery .remove不工作
- 20. jquery draggable droppable remove dropped
- 21. Ajax中的jQuery remove()
- 22. jquery .remove不工作
- 23. .remove jquery不工作
- 24. jQuery $(this).remove()追加
- 25. Java泛型類型EMPTY vs null
- 26. remove()方法在jQuery是不工作
- 27. Safari滾動問題與jQuery .remove()
- 28. jQuery的remove()方法檢索
- 29. jquery remove desellect附加價值
- 30. jQuery問題 - $(this).parent()。remove();
事件處理程序呢?我有一個奇怪的情況,空+兩次追加,不同的追加會導致第二組附加項執行第一組的處理程序。 – Killroy 2015-01-08 19:15:03
@太晚了,但他們也刪除了處理程序。你有機會讓這些處理程序註冊一個像「live」或「delegate」這樣的函數。 – undone 2017-12-20 11:24:06