ต้องไปที่โหนดหลักก่อนดูแปลกสำหรับฉันมีเหตุผลที่ใช้งาน JavaScript เช่นนี้?
ชื่อฟังก์ชั่นคือremoveChild()
และเป็นไปได้อย่างไรที่จะลบเด็กเมื่อไม่มีผู้ปกครอง? :)
ในทางกลับกันคุณไม่จำเป็นต้องโทรหาทุกครั้งที่แสดง element.parentNode
เป็นเพียงผู้ช่วยที่จะได้รับโหนดหลักของโหนดที่กำหนด หากคุณรู้จักโหนดพาเรนต์แล้วคุณสามารถใช้มันได้ดังนี้:
Ex:
// Removing a specified element when knowing its parent node
var d = document.getElementById("top");
var d_nested = document.getElementById("nested");
var throwawayNode = d.removeChild(d_nested);
https://developer.mozilla.org/en-US/docs/Web/API/Node/removeChild
================================================== =======
ในการเพิ่มอะไรเพิ่มเติม:
คำตอบบางคนได้ชี้ให้เห็นว่าแทนการใช้คุณสามารถใช้parentNode.removeChild(child);
elem.remove();
แต่อย่างที่ฉันสังเกตเห็นมีความแตกต่างระหว่างสองฟังก์ชั่นและไม่ได้กล่าวถึงในคำตอบเหล่านั้น
หากคุณใช้removeChild()
มันจะส่งคืนการอ้างอิงไปยังโหนดที่ถูกลบออก
var removedChild = element.parentNode.removeChild(element);
console.log(removedChild); //will print the removed child.
แต่ถ้าคุณใช้elem.remove();
มันจะไม่ส่งคืนข้อมูลอ้างอิงให้คุณ
var el = document.getElementById('Example');
var removedChild = el.remove(); //undefined
https://developer.mozilla.org/en-US/docs/Web/API/ChildNode/remove
พฤติกรรมนี้สามารถสังเกตได้ใน Chrome และ FF ฉันเชื่อว่ามันคุ้มค่าที่จะสังเกตเห็น :)
หวังว่าคำตอบของฉันจะเพิ่มคุณค่าให้กับคำถามและจะเป็นประโยชน์ !!