Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过jQuery查找body标记的最快方法_Javascript_Jquery_Html - Fatal编程技术网

Javascript 通过jQuery查找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

在准备好的每个文档上,我都需要通过jQuery获得body标签,我对这个问题的答案比其他任何东西都更感兴趣

假设这是我网站上每个页面上的body标签:

<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