Удалить элемент dom, не зная его родителя?

Можно ли удалить элемент dom, у которого нет родителя, кроме тега body? Я знаю, что это будет легко с фреймворком вроде jquery, но я пытаюсь придерживаться прямого javascript.

Вот код, который я нашел, чтобы сделать это иначе:

function removeElement(parentDiv, childDiv){
     if (childDiv == parentDiv) {
          alert("The parent div cannot be removed.");
     }
     else if (document.getElementById(childDiv)) {     
          var child = document.getElementById(childDiv);
          var parent = document.getElementById(parentDiv);
          parent.removeChild(child);
     }
     else {
          alert("Child div has already been removed or does not exist.");
          return false;
     }
}   

Благодаря!

javascript,removechild,

33

Ответов: 7


84 принят

Вы должны иметь возможность получить родительский элемент, а затем удалить элемент из этого элемента

function removeElement(el) {
el.parentNode.removeChild(el);
}

Обновить

Вы можете установить это как новый метод в HTMLElement:

HTMLElement.prototype.remove = function() { this.parentNode.removeChild(this); return this; }

А затем сделайте el.remove()(что также вернет элемент)


16

Я думаю, вы можете сделать что-то вроде ...

var child = document.getElementById(childDiv);
//var parent = document.getElementById(parentDiv);
child.parentNode.removeChild(child);

Дополнительную информацию об этом см. В узле.parentNode .


уя 14
childDiv.remove();

работает в Chrome 25.0.1364.155

Обратите внимание, что это не работает в IE11 или Opera Mini, но поддерживается всеми другими браузерами.

См. Здесь: ссылка на childnode-remove on caniuse


document.body.removeChild(child);

3

Удаление элемента с использованием outerHTMLсвойства

remElement(document.getElementById('title'));
remElement(document.getElementById('alpha'));

function remElement(obj) {
obj.outerHTML="";
}
JavaScript, RemoveChild,
Похожие вопросы