我想要更改某些.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;
答案 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";