按ID调用获取元素和多个get元素

时间:2013-09-13 21:29:35

标签: javascript jquery css-selectors getelementbyid getelementsbyclassname

我担心从页面中选择多个元素。最好是按类使用选择器,还是通过id多次调用选择器?

我选择的元素数量,或者我没有选择的垃圾元素,但选择器必须每次都检查它们。

(对不起我的英文)

2 个答案:

答案 0 :(得分:1)

通常,您应该使用最具可读性的内容。对于这种情况,它将按类名进行选择 - 结果也是更高效的。在未来,最好避免像这样的微优化,因为它们很可能不会以某种方式影响性能。重要的是要确定性能何时成为一个因素,并且通常在脚本执行时间超过100毫秒时出现。

jsPerf Demo

jsperf非常适合这些类型的问题

HTML

<div>
 <div class="divs" id="a1"></div>
 <div class="divs" id="a2"></div>
 <div class="divs" id="a3"></div>
 <div class="divs" id="a4"></div>
 <div class="divs" id="a5"></div>
 <div class="divs" id="a6"></div>
 <div class="divs" id="a7"></div>
 <div class="divs" id="a8"></div>
</div>

按类脚本获取

var divs = $(".divs");

在循环中通过id获取元素

var divs;
for( var i = 1; i < 9; i++ )
{
 divs == void 0? $("#a"+i) : divs.add($("#a"+i));
}

结果:

按班级分类:

109,735 opts/second
±4.17%
fastest

循环中的id:

75,074 opts/second
±5.70%
33% slower

答案 1 :(得分:0)

如果你想获得一堆元素,最好按类使用一个选择器。当你使用id选择器是因为你只想使用那个元素。 ID应该是唯一的。

西班牙语回答: Los selectores si quieres traer varios elementos deberia ser utilizado por clase。 Si utilizas por id se supone que en el html solo deberia de haber un elemnto con un Id es unico。