亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

大神們求解答啊!為什么是這樣的?遍歷節點出問題了!

<!DOCTYPE?HTML>
<html>
<head>
????<meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8">
????<title>節點屬性</title>
</head>
<body>
<ul>
????<li>javascript</li>
????<li>HTML/CSS</li>
????<li>jQuery</li>
</ul>
<script?type="text/javascript">
????node?=?document.getElementsByTagName("li");
????var?type?=?['元素','屬性','文本',,,,,'注釋','文檔'];
????document.write("節點的數量為:"+node.length+"<br>");
????for?(var?i?in?node){
????????each?=?node[i];
????????document.write("節點名稱:"+each.nodeName+"\t\t");
????????document.write("節點屬性:"+each.nodeValue+"\t\t");
????????document.write("節點類型:"+type[each.nodeType]+"<br>")
????}

</script>
</body>
</html>

輸出顯示節點數是三個,但是后面遍歷節點的時候結果是這樣的:

http://img1.sycdn.imooc.com//580c7b5a000140ad05860244.jpg

后面那三行是怎么回事啊啊啊啊!!!

正在回答

3 回答

自問自答一波,剛剛問了另外的大神 : getElement方法返回的是HTMLCollection對象,并不是普通的數組;for/in循環遍歷HTMLCollection對象的屬性,所以才會出現返回undefined值得情況.用普通的for循環就行.

stackoverflow上有人做了詳細的解釋:

http://stackoverflow.com/questions/22754315/foreach-loop-for-htmlcollection-elements

2 回復 有任何疑惑可以回復我~

我覺得可能是循環的問題,因為js的數組是可以隨意擴大的,所以你試試for(var i=0;i<node.length;i++)

0 回復 有任何疑惑可以回復我~
#1

大呆先森_ 提問者

getElement方法返回的是HTMLCollection對象,并不是普通的數組;for/in循環遍歷HTMLCollection對象的屬性,所以才會出現返回undefined值得情況.用普通的for循環就行. stackoverflow上有人做了詳細的解釋: http://stackoverflow.com/questions/22754315/foreach-loop-for-htmlcollection-elements
2016-10-23 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

大神們求解答啊!為什么是這樣的?遍歷節點出問題了!

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號