運行以下代碼並按下按鈕應該登錄到控制檯窗口2個元素,元素與class="test1"
,按鈕和p
元素。而console.log(el.length)
是2
。但是,記錄到控制檯是這樣的:使用getElementsByClassName似乎得到太多元素
[p#div1.test1,
button#btn.test1,
div1: p#div1.test1,
btn: button#btn.test1]
它看起來像4
元素不2
。
這裏發生了什麼?
<html>
<body>
<p class="test1" id="div1">test1</p>
<button id="btn" onclick="getElements()" class="test1">Get Element List</button>
<script>
function getElements()
{
var txt = document.getElementById("div1").innerHTML;
var el = document.getElementsByClassName(txt);
if (el) {
console.log(el);
console.log(el.length);
}
}
</script>
</body>
</html>
你似乎對'console.log'的「常態」太興奮了。一切都非常好,並且應該如此。輸出是正確的。除了誤解日誌以外,這裏真正的問題是什麼? – vsync
我的問題可能應該是:爲什麼在console.log(el)中有四個元素(即用逗號分隔)? – Ron
ho,我不知道你不知道[** HTMLcollection **](https://developer.mozilla.org/en/docs/Web/API/HTMLCollection)... – vsync