用下面的標記:爲什麼chrome throw'getAttribute'不是for循環中的函數錯誤?
<div id="parent">
<div id="one">one</div>
<div id="two">two</div>
<div id="three">three</div>
<div id="four">four</div>
<div id="five">five</div>
<div id="six">six</div>
</div>
<p id="output">
</p>
及以下的javascript:
var output = document.getElementById('output');
var items = document.querySelectorAll('#parent > div');
output.innerHTML += '#' + items[2].getAttribute('id') + '<br /><br />';
for(index in items){
output.innerHTML += '#' + items[index].getAttribute('id') + ': ';
output.innerHTML += items[index].innerHTML + '<br />';
}
鉻投在控制檯以下錯誤:
Uncaught TypeError: items[index].getAttribute is not a function
我在IE 11和檢查本控制檯中沒有錯誤。奇怪的是,實際的result of the expression是正確的。
有誰知道爲什麼會發生這種情況?
var output = document.getElementById('output');
var items = document.querySelectorAll('#parent > div');
output.innerHTML += '#' + items[2].getAttribute('id') + '<br /><br />';
for(index in items){
\t \t output.innerHTML += '#' + items[index].getAttribute('id') + ': ';
\t \t output.innerHTML += items[index].innerHTML + '<br />';
}
#output{
color: blue;
}
<div id="parent">
<div id="one">one</div>
<div id="two">two</div>
<div id="three">three</div>
<div id="four">four</div>
<div id="five">five</div>
<div id="six">six</div>
</div>
<p id="output">
</p>
所有其他的答案似乎工作,但我喜歡這一個最好的,因爲它種解釋了爲什麼原來的代碼不工作(即不訪問因此'不是函數') –
請解釋爲什麼一個* working *函數報告:'#undefined:undefined'? – zer00ne
@ zer00ne:更新了原因和固定代碼的答案。感謝指出相同的:) –