【问题标题】:Cannot set 'backgroundColor of undefined' [duplicate]无法设置“未定义的背景颜色”[重复]
【发布时间】:2018-10-27 02:14:38
【问题描述】:

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

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

     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>

【问题讨论】:

    标签: javascript classname


    【解决方案1】:

    尝试循环遍历元素。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我不确定我是否理解,这如何适用于脚本?我可以改变什么?
      • 代码见@MevlütÖzdemir 的回复。从我之前链接的 HTMLCollection 文档中,HTMLCollection 是一个“类似数组的对象”。因此,您希望循环查看从 document.getElementsByClassName 调用中获得的结果。
      • 明白了,我现在明白了,你能引用任何其他讨论 HTMLCollections 的网站吗?
      • 看看这是否有帮助w3schools.com/jsref/…
      【解决方案3】:

      尝试以下方法:

      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"
          }
        }
      }
      

      【讨论】:

        猜你喜欢
        • 2014-10-30
        • 1970-01-01
        • 1970-01-01
        • 2012-06-04
        • 2014-03-29
        • 1970-01-01
        • 1970-01-01
        • 2014-07-16
        • 1970-01-01
        相关资源
        最近更新 更多