为了账号安全,请及时绑定邮箱和手机立即绑定

关于子节点和空白节点

关于子节点和空白节点

刘毅毅 2016-11-07 00:32:47
教程说除了IE其他的浏览器会计算空白节点,为什么我用好像是谷歌内核的搜狗浏览器显示7个节点其中4个是作为4个文本节点?即 javascript    <p>javascript</p>  <div>jQuery</div>  <h5>PHP</h5>这样的话如果再加上空白节点的话岂不是11个节点了?<div>   javascript     <p>javascript</p>   <div>jQuery</div>   <h5>PHP</h5> </div> <script type="text/javascript">  var node=document.getElementsByTagName("div");  var cnode=node[0].childNodes;  document.write("子节点数:"+cnode.length+"<br/>");  for(i=0;i<cnode.length;i++){     document.write("名字:"+cnode[i].nodeName+"&nbsp;"+"类型:"+cnode[i].nodeType+"&nbsp;"+"值:"+cnode[i].nodeValue+"<br/>");    } </script>
查看完整描述

2 回答

?
GavinZeng

TA贡献31条经验 获得超20个赞

nodeType 等于3的即空白文本节点,这些节点IE不视为节点,而其他浏览器会当作节点,遍历一下这些节点的属性值就清除了

查看完整回答
反对 回复 2016-11-07
  • 刘毅毅
    刘毅毅
    nodeType=3不是文本节点吗?如果有文本存在的话就不是空白节点了吧?从那张图上看既有文本又有空白节点
?
stone310

TA贡献361条经验 获得超191个赞

你说的空白节点就是文本节点,而且这里第一个javascript就是文本节点,所以连同第一个两边的空白都只是一个节点,然后才到<p>是第二个节点(元素节点),再到空白。。。这样写总共是7个没问题

查看完整回答
反对 回复 2016-11-07
  • 刘毅毅
    刘毅毅
    那也还有3个元素节点,一共也是10个节点了,可是运行后说有7个节点
  • 刘毅毅
    刘毅毅
    我好像发现。。。文本节点的概念我没弄清。li和p本身,以及它们标记的文本,这4种东西到底哪个是文本节点,晕
  • 刘毅毅
    刘毅毅
    可否理解为<li>111</li>这个元素节点包含一个子节点---文本节点111?
点击展开后面2
  • 2 回答
  • 0 关注
  • 1820 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信