如何在javascript函数中使用getElementsByClassName?

jan*_*674 13 javascript dom

我无法弄清楚如何在JavaScript中使用多个ID.单个ID和getElementById没问题,但是只要我将ID更改为类并尝试使用getElementsByClassName,该函数就会停止工作.我读过有关该主题的100篇帖子; 仍然没有找到答案,所以我希望有人知道如何使getElementsByClassName工作.

以下是我用于测试的一些简单代码:

function change(){
    document.getElementById('box_one').style.backgroundColor = "blue";
}

function change_boxes(){
    document.getElementsByClassName ('boxes').style.backgroundColor = "green";
}


<input name="" type="button" onClick="change(document.getElementById('box_one')); change_boxes(document.getElementsByClassName('boxes'))" value="Click" />   

<div id="box_one"></div>
<div class="boxes" ></div>
<div class="boxes" ></div>
Run Code Online (Sandbox Code Playgroud)

Mat*_*ics 29

getElementsByClassName()返回*.您正试图直接对结果进行操作; 你需要迭代结果.nodeList HTMLCollection

function change_boxes() {
    var boxes = document.getElementsByClassName('boxes'),
        i = boxes.length;

    while(i--) {
        boxes[i].style.backgroundColor = "green";
    }
}
Run Code Online (Sandbox Code Playgroud)

*更新以反映界面的变化