单击按钮时JavaScript更改Class的颜色

时间:2016-03-05 17:55:08

标签: javascript class button

当我单击按钮时,我似乎无法使document.getElementsByClassName起作用。我可以让document.getElementById工作,但不能上课。 有人可以向我解释为什么下面的第一课不能正常工作吗?

result = Math.round(result * 1000) / 1000; 
// are you sure you don't mean to include / 1000 inside the round? 
result = result.toLocaleString('de-DE', { minimumFractionDigits: 2 });
...

我在html页面中设置了类:

document.getElementById('footer').style.background = 'rgba(189, 195, 199,1.0)';
document.getElementsByClassName('menulink').style.background = 'rgba(189, 195, 199,1.0)';

3 个答案:

答案 0 :(得分:1)

getElementById返回单个元素,但getElementsByClassName()返回一个NodeList(注意getElementS上的's')。 这可行:

  document.getElementsByClassName('menulink')[0].style.background = 'rgba(189, 195, 199,1.0)';

答案 1 :(得分:1)

Document.getElementsByClassName()

MDN

  

返回具有全部子元素的所有子元素的类数组对象   给定的类名。

这是返回一个对象,而不仅仅是一个值。您必须以引用对象的任何属性的方式引用它们。

document.getElementsByClassName('className')["propertyName"].*action here*;

在你的情况下,这样的事情可能有效:

   var targets = document.getElementsByClassName("menulink");
   for (var i = 0; i < targets.length; i++) {
      targets[i].style.background = "rgba(189, 195, 199,1.0)";
   }

答案 2 :(得分:0)

getElementByClassName返回DOM元素列表。

您必须迭代到每个项目并需要设置样式,例如

    var links = document.getElementsByClassName('menulink');
    for(var i = 0; i < links.length; i++){
        links[i].style.background = 'rgba(189, 195, 199,1.0)';
    }