首页 > 建站教程 > JS、jQ、TS >  JS添加和删除节点正文

JS添加和删除节点

    不像jQuery,js的添加和删除节点都比较麻烦,例如删除节点,必须要找到被删除元素的父节点,通过父节点的removeChild才能删除当前节点。当然,jQuery就是为了简化js才推出的,不可能比js操作起来还麻烦。下面这两段是从网上当下来的代码:js删除和添加节点:

1、js添加节点createElement:

html代码:
<div id="div1">
    <p id="p1">这是一个段落</p>
    <p id="p2">这是另一个段落</p>
</div>
js代码:
/*1.创建新的<p>元素*/
var para=document.createElement("p");
/*2.向<p>元素添加文本(首先创建文本节点),(此段代码创建了一个文本节点)*/
var node=document.createTextNode("这是新段落");
/*向<p>元素追加这个文本节点*/
para.appendChild(node);
/*最后您必须向一个已有的元素追加这个元素*/
/*3.这段代码找到一个已有的元素*/
var element=document.getElementById("div1");
/*4.这段代码向这个已有的元素追加新元素*/
element.appendChild(para);
2、js删除已有的节点removeChild

html代码:
<div id="div1">
    <p id="p1">这是一个段落。</p>
    <p id="p2">这是另一个段落。</p>
</div>
js代码:
/*找到父元素*/
var parent=document.getElementById("div1");
/*找到子元素*/
var child=document.getElementById("p1");
/*将子元素从父元素中删除*/
parent.removeChild(child);
提示:如果能够在不引用父元素的情况下删除某个元素,就太好了。不过很遗憾。DOM 需要清楚您需要删除的元素,以及它的父元素。这是常用的解决方案:找到您希望删除的子元素,然后使用其 parentNode 属性来找到父元素:
var child=document.getElementById("p1");
child.parentNode.removeChild(child);
注意:这里的parentNode和child必须是父子关系,不能仅仅是包含与被包含:
el.parentNode.parentNode.parentNode.removeChild(el);
上面这段代码就是我爱模板网写的,发现提示:Uncaught NotFoundError: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node 的错误,原因就是 removeChild 的前者和后者并非父子关系。