0

我想用 css 类选择所有元素

.arrow-down

抱歉,对于我的问题,我根本找不到正确的答案!

我有一个javascript代码:

document.getElementsByClassName("arrow-down")[0].style.borderTopColor=""+blu+"";

那么我如何选择不是第一个而是[全部],或者有没有办法[1; 2; 3;]?

getElementsByClassName("arrow-down")[all]

getElementsByClassName("arrow-down")[1;2...]

我尝试了很多东西,但就是不明白!

来自德国的问候!

4

2 回答 2

2

您需要遍历返回的结果列表。

var elements = document.getElementsByClassName("arrow-down");

for (var i = 0, len = elements.length; i < len; i++){
  elements[i].style.borderTopColor = blu;
}

如果您只想根据索引做一个特定的子集,那么您可以添加一个检查 的值的条件i。我还假设这blu是您在某处定义的变量?

for (var i = 0, len = elements.length; i < len; i++){
  if (i === 1 || i === 2 || i === 3){
    elements[i].style.borderTopColor = blu;
  }
}

不幸的是,JavaScript 没有用于访问特定数组值子集或一次将更改应用于多个元素的简写。这是 jQuery 自动为您做的事情。例如,使用 jQuery 你可以这样写:

$('.arrow-down').css('borderTopColor', blu);
于 2013-02-17T19:19:08.803 回答
1

document.getElementsByClassName("arrow-down")确实选择了所有这些元素。

这些在节点列表中返回(可以被视为数组),这就是使用[0]on 返回第一个元素的原因。

遍历表达式返回的不同元素并对其进行操作:

var elements = document.getElementsByClassName("arrow-down");
var elementsNum = elements.length)

for(var i = 0; i < elementsNum; i++)
{
  var anElement = elements[i];

  // do something with anElement
}
于 2013-02-17T19:18:15.507 回答