Javascript 通过jQuery查找body标记的最快方法
在准备好的每个文档上,我都需要通过jQuery获得body标签,我对这个问题的答案比其他任何东西都更感兴趣 假设这是我网站上每个页面上的body标签:Javascript 通过jQuery查找body标记的最快方法,javascript,jquery,html,Javascript,Jquery,Html,在准备好的每个文档上,我都需要通过jQuery获得body标签,我对这个问题的答案比其他任何东西都更感兴趣 假设这是我网站上每个页面上的body标签: <body id="body"> 或按其id查询: $('#body') 最快的方法是$(document.body) 这不涉及任何选择器解析 $('body')比$('body')快得多(在Firefox和Chrome中) jQuery优化了主体元素的查找。以下是相关信息: 因此,使用$(“body”)与$(document.b
<body id="body">
或按其id查询:
$('#body')
最快的方法是
$(document.body)
这不涉及任何选择器解析
$('body')
比$('body')
快得多(在Firefox和Chrome中)
jQuery优化了
主体
元素的查找。以下是相关信息:
因此,使用$(“body”)
与$(document.body)
一样快,正如其他答案中所建议的那样。使用$(“body”)
肯定比给body
一个id
要快,因为如果使用id
,上述优化代码将无法运行。jQuery将使用getElementById
,这很快,但没有上面提到的那么快
编辑
正如@SLaks所指出的,$(document.body)
是最快的,这在查看处理DOM元素选择器而不是字符串的jQuery源代码时是有意义的:
if ( selector.nodeType ) {
this.context = this[0] = selector;
this.length = 1;
return this;
}
标记名是Chrome中最快的,可能也是大多数浏览器中最快的。更快的方法是跳过jQuery包装器:
document.getElementsByTagName("body");
或
测量结果表明,
$(document.body)
仍然要快得多。的确如此。这确实很有道理。要处理的相关jQuery源代码就在我粘贴到答案中的部分上方,但我没有找到它!即时冻结GitHub链接:未找到代码移动到的位置。并且$(document.getElementById('body')
是一个-本机JS通常比jQuery功能更快。请记住自己运行测试。现在在我的Firefox上,$('body')
比$('body')
快。和$(document.getElementById('body'))
不是最快的。document.getElementsByTagName(“body”)返回一个数组
if ( selector.nodeType ) {
this.context = this[0] = selector;
this.length = 1;
return this;
}
document.getElementsByTagName("body");
document.body