【问题标题】:How to change the color of the class in javascript [closed]如何在javascript中更改类的颜色[关闭]
【发布时间】:2015-06-03 09:52:34
【问题描述】:

我对这段代码有疑问,我用getElementById 做了所有事情,它对我有用。但同样的代码不适用于

 document.getElementsByClassName("hearts");

我的 HTML 代码是

status = 1;

function changeStyle() {
  //Note the lowercase first letter.
  x = document.getElementsByClassName("hearts");

  if (status == 1) {
    x.style.color = 'white';
    status = 2;
  } else if (status == 2) {
    x.style.color = 'red';
    status = 1;
  }
}
<a onclick="javascript:changeStyle();" style="color:red;" class="hearts"> my code </a>

【问题讨论】:

  • 还有一个错误是javascripot的拼写错误
  • 因为你的选择器是通过ID而不是class定位一个元素。看看使用get.ElementsByClassName() 你将需要对使用[0] 的多个元素使用for 循环来选择该类的第一个元素。
  • 仅几行就可以犯的错误数量令人惊讶。您是否考虑过在此处发布之前调试您的代码?
  • 试试var x=document.getElementsByClassName("hearts")[0];
  • 您的代码只使用第一个元素,如果我有 10 个元素怎么办?

标签: javascript jquery html class


【解决方案1】:

getElementsByClassName() 方法以NodeList 对象的形式返回文档中具有指定类名的所有元素的集合。

NodeList 对象表示节点的集合。可以通过索引号访问节点。索引从 0 开始。

试试这个:

<script>
    status = 1;
function changeStyle() {
    alert(1);
//Note the lowercase first letter.
x = document.getElementsByClassName("hearts")[0];

if(status==1) {
    x.style.color = 'green';
    status = 2;
}
else if(status==2) {
    x.style.color = 'red';
    status = 1;
}
}
</script>

JSFiddle

【讨论】:

  • 这个只使用第一个元素如果我有 10 怎么办? ?
  • @user44444 getElementsByClassName() 方法以NodeList 对象的形式返回文档中具有指定类名的所有元素的集合。 NodeList 对象表示节点的集合。可以通过index numbers 访问这些节点。索引从 0 开始。
  • @user44444 :使用for 循环
  • 好的,非常感谢 :) 我明白了,现在我把索引放在我的函数中,问题就解决了
猜你喜欢
  • 2014-03-22
  • 1970-01-01
  • 2017-10-04
  • 2015-09-24
  • 2015-01-14
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
  • 2015-09-14
相关资源
最近更新 更多