如何完全删除父元素

时间:2018-09-08 19:28:29

标签: javascript

如果这是我的div元素

<a href="sdfsfsf"><p class="quotes">blablabla</p></a>

如果它不是主页,如何删除此quotes

的父项a

我无法为我的元素配置此代码:

function delete_row(e)
{
    e.parentNode.parentNode.parentNode.removeChild(e.parentNode.parentNode);
}

js程序也必须在页面加载且不是主页时自动加载,应该删除一个元素

2 个答案:

答案 0 :(得分:1)

要删除子元素e的直接父元素,而使子元素仍保留在DOM中(但重设为其原始祖父母),请使用.replaceChild

e.parentNode.parentNode.replaceChild(e, e.parentNode);

答案 1 :(得分:0)

如果要将p保留在原位,则需要先将其添加到其父容器中:

function delete_row(e) {
    var parent = e.parentNode;
    var grandParent = parent.parentNode;
    // remove e from its parent
    e.remove();
    // insert e into its grandParent, before parent
    grandParent.insertBefore(e, parent);
    // remove parent
    parent.remove();
}

但是通过上面@Alnitak的解决方案也可以实现同样的目的。

今天我已经学会了:)