<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>
我们来分析一下这一句:x.childNodes.nodeName
首先 x.childNodes 你拿到的是 x 下的所有子节点,注意这里拿到的是个类数组,不是某一个节点,而是所有子节点
其次,按照你的写法就是 类数组.nodeName ,类数组上没有 nodeName 属性,所以是 undefined,
你要是想输出每个子节点的 nodeName,就要遍历这个类数组(或者转成数组然后遍历),对每一个子节点进行输出 nodeName 操作。