我是初學者Javascripter,我想運行此腳本以隨機更改框的背景顏色。這是我的JS:無法設置包含節點的陣列項目的屬性
var divs = document.getElementsByClassName("col-sm-3");
var innDivs = [];
colournumber = function() {
return(Math.random().toString(16) + '000000').slice(2, 8);
}
for (i=0;i<divs.length;i++) {
innDivs[i] = divs[i].getElementsByTagName("div");
innDivs[i].setAttribute("style","background-color:#"+colournumber());
}
但我得到的錯誤,我不能在innDivs [i]上設置屬性。任何想法我如何做到這一點?
這工作,但我不明白爲什麼我沒有。 innDivs [i]裏面有什麼? 它是一個多維數組嗎? – guru 2014-09-30 00:30:15
'innDivs [i]'是一個['HTMLCollection'](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCollection),即html元素的集合。 HTMLCollection對象本身沒有'setAttribute'方法,爲了設置集合中元素的屬性,你必須公開每個單獨的元素,這在第二個for循環中完成。 – Musa 2014-09-30 00:42:48