อะไรคือความแตกต่างระหว่างempty()
และremove()
วิธีการในjQuery
และเมื่อเราเรียกวิธีการใด ๆ เหล่านี้วัตถุที่สร้างขึ้นจะถูกทำลายและปล่อยหน่วยความจำออกมา?
อะไรคือความแตกต่างระหว่าง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>
.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>
. ว่าง ():
$('.hello').empty();
หลังจาก:
<div class="container">
<div class="hello"></div>
<div class="goodbye">Goodbye</div>
</div>
เท่าที่เกี่ยวข้องกับหน่วยความจำเมื่อองค์ประกอบถูกลบออกจาก DOM และไม่มีการอ้างถึงอีกต่อไปตัวรวบรวมขยะจะเรียกคืนหน่วยความจำเมื่อทำงาน
$("body").empty()
- มัน 'ลบองค์ประกอบ HTML DOM ภายในแท็กเนื้อหา -
เมื่อคุณประกาศ $("body").remove()
- จะลบ HTML DOM ทั้งหมดพร้อมกับ body TAG