为什么要费心猜测,这里有一个具有相同结构和选择器的实时示例:http:
//jsfiddle.net/3Ah5S/
HTML
<div id="idP" class="classP">
<h1>P</h1>
<div id="idC1" class="classC1">
<b>C1</b>
<div id="idC11" class="classC11">
-->C11
</div>
<div id="idC12" class="classC12">
-->C12
</div>
</div>
<div id="idC2" class="classC2">
<b>C2</b>
<div id="idC21" class="classC21">
-->C21
</div>
<div id="idC22" class="classC22">
-->C22
</div>
</div>
</div>
<br/>
<div id="idResults">
</div>
<br/>
<div id="classResults">
</div>
jquery测试代码
$(document).ready(function(){
startTime = new Date().getTime();
for (i = 0; i < 10000; i++)
{
s = $("#idC12");
}
$("#idResults").html("c12 by id time: "+elapsedMilliseconds(startTime));
startTime = new Date().getTime();
for (i = 0; i < 10000; i++)
{
s = $(".classC12");
}
$("#classResults").html("c12 by class time: "+elapsedMilliseconds(startTime));
});
function elapsedMilliseconds(startTime)
{
var n = new Date();
var s = n.getTime();
var diff = s - startTime;
return diff;
}
绝对 ID 时间更快,因为它利用特定于浏览器的指令来直接获取您的元素,而无需遍历 DOM 树。
更新:
按 ID 搜索更快的原因是浏览器倾向于在渲染页面时为 DOM 树中具有唯一 ID 的每个元素创建一个变量,因此按 ID 查询是最快的方式,因为它将使用直接关联变量。
可以在这里找到一个很好的解释:http: //javascript.info/tutorial/searching-elements-dom