OK, vous ne devez pas fondamentalement connaître le parent pour supprimer un élément DOM de DOM, regardez le code ci-dessous, voir comment est l'ordre de supprimer un élément de noeud dans JavaScript:
Element
+ parentNode
+ removeChild(Element);
Comme vous le voyez, nous trouvons l'élément premier, puis à l'aide .parentNode puis retirez l'enfant qui est à nouveau l'élément, donc on n'a pas besoin de connaître le parent du tout!
Alors regardez maintenant le code réel:
var navigation = document.getElementById('navigation');
if(navigation) {
navigation.parentNode.removeChild(navigation);
}
ou en fonction
function removeNode(element) {
if(element) { //check if it's not null
element.parentNode.removeChild(element);
}
} //call it like : removeNode(document.getElementById('navigation'));
également la fonction jQuery a remove() qui est largement utilisé, comme:
$('#navigation').remove();
En outre, il est ChildNode.remove()
natif qui n'est pas dans IE et les anciens navigateurs, mais vous pouvez le polyfill, regardez le su ggested polyfill de MDN:
Polyfill
Vous pouvez Polyfill la méthode remove dans Internet Explorer 9 et plus avec le code suivant():
//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]);
Si vous aimez apprendre plus à ce sujet, visitez ce link sur MDN.
FYI 'body' est un parent parfaitement valide. –
Chaque élément a un élément parent – iConnor
@connorspiracist sauf 'document' –