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>
2020-12-15
我們來分析一下這一句:x.childNodes.nodeName
首先?x.childNodes?你拿到的是?x?下的所有子節點,注意這里拿到的是個類數組,不是某一個節點,而是所有子節點
其次,按照你的寫法就是?類數組.nodeName ,類數組上沒有 nodeName 屬性,所以是?undefined,
你要是想輸出每個子節點的 nodeName,就要遍歷這個類數組(或者轉成數組然后遍歷),對每一個子節點進行輸出 nodeName?操作。