繁体   English   中英

jQuery选择器$(“element”,$(document.body))有什么作用?

[英]What does the jQuery selector $(“element”, $(document.body)) do?

我试图弄清楚这个jquery选择器正在做什么。 当它运行时,它正在大规模执行并且删除它会使执行速度提高大约95%。 没有它,优化的代码工作正常,但我仍然试图弄清楚它在做什么。

这是原始代码格式:

$("[name='" + this.Name + "']", $(document.body))...

我试图找出的项目是逗号之后的内容。 它不是选择器的正常部分,因为它不在主要的引号批次之内,而且我没有找到任何类似这样的文档。 当代码减少到

$("[name=\"" + this.Name + "\"]")

然后它以大幅提高的速度运行(快95%)。 有谁知道额外的$(document.body)在做什么?

$()函数的第二个参数是context 它和做的一样:

$(document.body).find("[name='" + this.Name + "']")

(这完全没用,因为标签通常不在文档正文之外。)

PS你不需要在$()包装第二个参数,它可以是一个DOM元素(甚至是一个选择器)。

$("[name='" + this.Name + "']", document.body) // this may be faster than
                                               // $(document.body)
$("[name='" + this.Name + "']", 'body')  // This is also valid

它只是定义了选择器应该操作的上下文。 在您的示例中,它将文档正文显式设置为上下文,但您可以使用DOM中的任何元素。 查看http://brandonaaron.net/blog/2009/06/24/understanding-the-context-in-jquery,以便对该主题进行详细讨论。

暂无
暂无

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

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