问答详情
源自:9-7 节点属性

x.childNodes,nodeName 为什么返回的是undefined?

<div><p>javascript</p>

    <div>jQuery</div>

    <h5>PHP</h5></div>

<script type="text/javascript">

    var x=document.getElementsByTagName("div")[0];  

  document.write(x.childNodes.nodeName);

//本来childNodes是在【0】后面的,var             x=document.getElementsByTagName("div")[0].childNodes这样的

  这个childNodes去掉了 放在输出里面怎么就返回undefined了呢 ?

</script>

</body>

</html>



提问者:慕莱坞1521965 2020-12-01 15:57

个回答

  • 樱雪_sakura
    2020-12-15 17:42:12

    我们来分析一下这一句:x.childNodes.nodeName

    首先 x.childNodes 你拿到的是 x 下的所有子节点,注意这里拿到的是个类数组,不是某一个节点,而是所有子节点

    其次,按照你的写法就是 类数组.nodeName ,类数组上没有 nodeName 属性,所以是 undefined,

    你要是想输出每个子节点的 nodeName,就要遍历这个类数组(或者转成数组然后遍历),对每一个子节点进行输出 nodeName 操作。