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

来源:9-7 节点属性

慕莱坞1521965

2020-12-01 15:57

<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>



写回答 关注

1回答

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

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

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

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

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


JavaScript进阶篇

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

468060 学习 · 21891 问题

查看课程

相似问题