子节点问题

来源:9-8 访问子节点childNodes

qq_九指相扣_0

2016-04-27 20:34

为什么p、DIV,H5的nodeValue会是null?

写回答 关注

2回答

  • kuban
    2016-04-29 10:48:15

    p、DIV,H5这些是标签不是属性,分类到元素节点,可以回顾一下9-7对于nodeValue的说明

    二、nodeValue 属性:节点的值

    1. 元素节点的 nodeValue 是 undefined 或 null
    2. 文本节点的 nodeValue 是文本自身
    3. 属性节点的 nodeValue 是属性的值

    p、DIV,H5的nodeValue会是null 这就能理解了吧

    然后,我想你也许想把标签里面的字用nodeValue输出出来,标签里的字是文本节点,所以获取文字应该是标签的子节点的nodeValue,下为代码

    <script type="text/javascript">
       var divs=document.getElementsByTagName("div");
       var d_first=divs[0].childNodes;
       for(i=0;i<d_first.length;i++){
           while(d_first[i].nodeType==1)//做了一个对空白节点的过滤,不然获取标签子节点的nodeValue会报错,因为空白节点没有子节点
           {
               document.write("节点类型:"+d_first[i].nodeName+d_first[i].childNodes[0].nodeValue+d_first[i].nodeType+"<br>");
               break;
           }
       }
    </script>


  • qq_九指相扣_0
    2016-04-27 20:36:06

    ok,感觉是因为他们是属性,所以nodeValue会是null

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468061 学习 · 21891 问题

查看课程

相似问题