您现在的位置:首页 >> 前端 >> 内容

javascriptDOM删除子节点

时间:2018/7/5 15:12:06 点击:

  核心提示:【例1】要删除下面的文本节点今天又下雨,真的好烦啦!首先,要获取到id = p1元素节点var myp = document.getElementById(p1);removeChild(childN...

【例1】要删除下面的文本节点


今天又下雨,真的好烦啦!

首先,要获取到id = “p1”元素节点

var myp = document.getElementById("p1");

removeChild(childNode)删除子节点;childNode必须是当前元素的子节点,否则没有权利。

myp.removeChild(myp.firstChild);

【例2】删除ul下面所有的li


  • li-1
  • li-2
  • li-3

首先,要获取到id = “myul”的元素节点,

var myp = document.getElementById("p1");       

第一种方法,
获取所有子元素

var nodes = myul.childNodes;

获取需要被删除每一个子元素

for(var i = 0; i < nodes.length; i++) {
    var node = nodes[i];
    myul.removeChild(node);
}

但是这种删除有一个问题,不能全部删除,会留下li-2这个文本节点,这是为什么呢?
原来,当i=0,nodes.length = 3;此时会删除li-1这个子节点
i=1时,node.length = 2,li-2就会变成nodes[0]这个节点,其实删除的是li-3
第二种方案
判断是否有子节点,存在返回true,不存在返回false

while(myul.hasChildNodes()) {
    myul.removeChild(myul.firstChild);
}

第三种方案(终极代码)

myul.innerHTML = "";

【例3】删除自己所在节点
DOM中只有删除子节点的方法,没有删除自己的方法


好好学习,天天向上

因此需要找到父节点(myp.parentNode.),删除自己(removeChild)

myp.parentNode.removeChild(myp);

 

Tags:10 06 6A AV 
作者:网络 来源:grace_it的博