为什么这个jQuery选择器工作?它基于什么

Why does this jQuery selector work? What is it based on?

本文关键字:于什么 什么 jQuery 选择器 工作 为什么      更新时间:2023-09-26

在这个问题中,使用了以下代码-

var parent = $("#jcontent"); 
var button1 = $(".button1", parent) ;

以选择 ID jcontent 的父级中的类 button1 按钮。

为什么会这样?如何将 jQuery 对象作为参数传递给 jQuery 选择器,告诉它在该对象中进行选择?有人可以链接到解释此功能的文档吗?

它是

核心方法调用的context参数。

该参数描述为:

用作上下文的 DOM 元素、文档或 jQuery

然后有一个标记为"选择器上下文"的部分,其开头为:

默认情况下,选择器从文档根目录开始在 DOM 中执行搜索。但是,可以使用 $() 函数的可选第二个参数为搜索提供备用上下文。

第二个参数是选择器上下文:DOM 元素、文档或 jQuery 对象,选择器在其中匹配。如果没有此参数,则假定文档根。

以下语句:

var button1 = $(".button1", parent); // parent = $("#jcontent")

与写作**相同:

var button1 = parent.find(".button1"); // parent = $("#jcontent")

并且(在这种情况下)产生与此相同的结果:

var button1 = $("#jcontent .button1");

** 如下所述:

在内部,选择器上下文是使用 .find() 方法实现的, 所以 $('span', this) 等价于 $(this).find('span')。