ada*_*dam 30 html javascript jquery
在准备好每个文档时,我需要通过jQuery获取body标签,我对此的答案比其他任何事情都更好奇.
假设这是我网站上每个页面上的正文标记:
<body id="body">
Run Code Online (Sandbox Code Playgroud)
仅通过标记名称查询body标签更快:
$('body')
Run Code Online (Sandbox Code Playgroud)
或按其ID查询:
$('#body')
Run Code Online (Sandbox Code Playgroud)
jQuery优化了body
元素的发现.这是相关的jQuery源代码:
if ( selector === "body" && !context && document.body ) {
this.context = document;
this[0] = document.body;
this.selector = selector;
this.length = 1;
return this;
}
Run Code Online (Sandbox Code Playgroud)
因此,使用$("body")
将$(document.body)
与其他答案中建议的一样快.使用$("body")
肯定会比给出body
一个更快id
,因为如果id
使用a,上面的优化代码就无法运行.jQuery会使用getElementById
,这很快,但不如上面那么快!
编辑
正如@SLaks所指出的那样,$(document.body)
它是最快的,当您查看将处理DOM元素选择器而不是字符串的jQuery源时这是有意义的:
if ( selector.nodeType ) {
this.context = this[0] = selector;
this.length = 1;
return this;
}
Run Code Online (Sandbox Code Playgroud)