【发布时间】:2015-06-26 22:40:30
【问题描述】:
我想在一些<div id="div"> 中更改所有<time> 元素中的.style.backgroundColor。
我是这样解决的:
var times = div.getElementsByTagName("time");
for (var i = 0; i < times.length; i++) {
times[i].style.backgroundColor = "#d00";
}
是否可以优化代码以尽可能减少变量?或者也许有一种方法可以用一行来做到这一点?
P.S.:不使用 JQuery;
【问题讨论】:
-
不,在普通的 JS 中,我认为没有任何替代方法可以不使用循环遍历所有此类元素。
-
@Harry 我认为 OP 没有问是否有任何替代方式 没有循环 他只是问了更优雅的方式并且不使用 jQuery
-
@Almis:公平点。但我仍然认为,从外行的角度来看,循环比切片、调用和映射更具可读性和可理解性。绝不是嘲笑你的回答,只是个人喜好。
-
您的问题包含一个逻辑上的不合理之处,因为它暗示 jQuery 解决方案可能首先被认为更优雅。
-
@torazaburo,我只是不知道 JQ。所以基于它的答案对我没有帮助:)
标签: javascript html css arrays for-loop