繁体   English   中英

jQuery选择器性能

[英]jQuery selector performance

为什么id选择器比jQuery中的类选择器更快?

jQuery中最快的选择器是ID选择器($('#someid'))。 这是因为它直接映射到本机JavaScript方法getElementById()。

关于Id Selector的这些观点也可以帮助您。

第1点:

在按ID搜索时, 不要限定您的选择器。

  • ID搜索使用浏览器本机getElementById方法( 速度非常快

糟糕的方式

$("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选择器充当这些本机函数的包装器,以及其他诸如getElementsByTagNamequerySelectorquerySelectorAll (它还带有一个名为Sizzle的选择器库,如果浏览器缺少必要的本机函数,则使用它)。

如果多个元素具有此ID,则不会定义行为。

因为它引用了具有特定ID的DOM元素。 另外,应该没有

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM