OK, về cơ bản bạn không cần phải biết cha mẹ xóa phần tử DOM khỏi DOM, xem mã bên dưới, xem cách xóa phần tử nút trong JavaScript:
Element
+ parentNode
+ removeChild(Element);
Như bạn thấy, chúng ta thấy yếu tố đầu tiên, sau đó sử dụng .parentNode và sau đó loại bỏ đứa trẻ đó là các phần tử một lần nữa, vì vậy chúng tôi không cần phải biết phụ huynh ở tất cả!
Vì vậy, bây giờ nhìn các mã thực:
var navigation = document.getElementById('navigation');
if(navigation) {
navigation.parentNode.removeChild(navigation);
}
hoặc như là một chức năng
function removeNode(element) {
if(element) { //check if it's not null
element.parentNode.removeChild(element);
}
} //call it like : removeNode(document.getElementById('navigation'));
Cũng jQuery có remove() chức năng được sử dụng rộng rãi, như:
$('#navigation').remove();
Ngoài ra còn có bản địa ChildNode.remove()
không có trong trình duyệt IE và các trình duyệt cũ, nhưng bạn có thể chèn nó, tìm kiếm polyfill ggested từ MDN:
Polyfill
Bạn có thể polyfill phương pháp remove() trong trình duyệt Internet Explorer 9 và cao hơn với đoạn mã sau:
//from:https://github.com/jserz/js_piece/blob/master/DOM/ChildNode/remove()/remove().md
(function (arr) {
arr.forEach(function (item) {
if (item.hasOwnProperty('remove')) {
return;
}
Object.defineProperty(item, 'remove', {
configurable: true,
enumerable: true,
writable: true,
value: function remove() {
this.parentNode.removeChild(this);
}
});
});
})([Element.prototype, CharacterData.prototype, DocumentType.prototype]);
Nếu bạn muốn tìm hiểu thêm về nó, hãy truy cập vào số link này trên MDN.
FYI 'body' là cha mẹ hoàn toàn hợp lệ. –
Mỗi phần tử đơn đều có phần tử cha – iConnor
@connorspiracist ngoại trừ 'tài liệu' –