更改数组中所有元素的CSS属性

时间:2015-04-20 09:25:08

标签: javascript html css arrays for-loop

我想要更改某些.style.backgroundColor中所有<time>个元素的<div id="div">。 我这样解决了:

var times = div.getElementsByTagName("time");
for (var i = 0; i < times.length; i++) {
    times[i].style.backgroundColor = "#d00";
}

是否可以优化代码,以便尽可能减少变量?或者也许有一种方法可以用一行来做到这一点? P.S。:不使用JQuery;

2 个答案:

答案 0 :(得分:5)

在ES6环境中:

Array.from(div.querySelectorAll("time"), e => e.style.backgroundColor = "#d00");

这利用Array.from将DOM节点列表转换为数组的功能,采用第二个参数,该参数是应用于每个元素的函数。

答案 1 :(得分:1)

另一种方法是使用反向while循环,如下所示:

var times=div.getElementsByTagName("time"),i=times.length;
while(i--)
    times[i].style.backgroundColor="#d00";