无法设置 'backgroundColor of undefined'

Cannot set 'backgroundColor of undefined'

我正在使用 document.getElementsByClassName 更改具有指定 class 名称的多个元素之一的背景颜色。

我在标题中有错误信息,我找不到任何错误,如果有错误请指出:

     function process() {
if (dv1 === 1 && dv2 === 1 && dv3 === 1) {
    turns = 0;
    document.getElementsByClassName('dot').style.backgroundColor = "black";
 }
}

<div class="dot" id="dot_01" onclick="dot_01()"></div>
<div class="dot" id="dot_02" onclick="dot_02()"></div>
<div class="dot" id="dot_03" onclick="dot_03()"></div>
<div class="dot" id="dot_04" onclick="dot_04()"></div>
<div class="dot" id="dot_05" onclick="dot_05()"></div>
<div class="dot" id="dot_06" onclick="dot_06()"></div>
<div class="dot" id="dot_07" onclick="dot_07()"></div>
<div class="dot" id="dot_08" onclick="dot_08()"></div>
<div class="dot" id="dot_09" onclick="dot_09()"></div>

getElementsByClassName returns an HTMLCollection。您需要遍历它并设置集合元素的样式。目前,您正在尝试在 HTMLCollection 对象本身的样式引用上设置属性,但它没有。

尝试遍历元素。

var elems = document.getElementsByClassName('dot');
for(var i = 0; i < elems.length; i++) {
    elems[i].style.backgroundColor = ‘black’
}

尝试以下操作:

function process() {
    if (dv1 === 1 && dv2 === 1 && dv3 === 1) {
    turns = 0;
    let elems = document.getElementsByClassName('dot');

    for (let elem of elems) {
        elem.style.backgroundColor = "black"
    }
  }
}