[英]jQuery selector performance
为什么id选择器比jQuery中的类选择器更快?
jQuery中最快的选择器是ID选择器($('#someid'))。 这是因为它直接映射到本机JavaScript方法getElementById()。
关于Id Selector的这些观点也可以帮助您。
第1点:
在按ID搜索时, 不要限定您的选择器。
糟糕的方式
$("div#your-id")
最好的办法
$("#your-id")
第2点:
您应该始终将选择缓存 到某个变量
糟糕的方式
$("#myList").click( function() {
$("#myList").hide();
});
最好的办法
var myList = $("#myList");
myList.click( function() {
myList.hide(); // No need to re-select #myList since we cached it
});
浏览器能够比使用类更快地通过Id检索元素。 给定Id,使用getElementById
时会返回一个或零个元素。 这使得浏览器可以跟踪页面中元素的ID,从而通过Id提供快速搜索操作。
按类名搜索使得有必要查找具有给定类名的所有元素。 即使某些浏览器支持getElementsByClassName
,内部也需要遍历整个DOM树来获取它们。
jQuery选择器充当这些本机函数的包装器,以及其他诸如getElementsByTagName
, querySelector
或querySelectorAll
(它还带有一个名为Sizzle
的选择器库,如果浏览器缺少必要的本机函数,则使用它)。
如果多个元素具有此ID,则不会定义行为。
因为它引用了具有特定ID的DOM元素。 另外,应该没有
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.