问答详情
源自:9-8 访问子节点childNodes

子节点问题

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

提问者:qq_九指相扣_0 2016-04-27 20:34

个回答

  • 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