Jquery 同一个元素的$(';';类';,element)是什么意思?
我不反对这种语法:Jquery 同一个元素的$(';';类';,element)是什么意思?,jquery,jquery-selectors,Jquery,Jquery Selectors,我不反对这种语法: var dir = $("a.store").parents("table")[0]; var stores = $("a.store:has(b)", dir); 存储包含哪些内容 “$”(“a.store:has(b)”,dir);“?它将返回与css选择器匹配的dom元素集合(“a.store:has(b)”),这些元素是存储在'dir'变量中的dom元素的子元素。在您的示例中,dir是选择器的上下文。从Felix在评论中的链接: 默认情况下,选择器从文档根开始在DO
var dir = $("a.store").parents("table")[0];
var stores = $("a.store:has(b)", dir);
存储
包含哪些内容
“$”(“a.store:has(b)”,dir);“
?它将返回与css选择器匹配的dom元素集合(“a.store:has(b)”),这些元素是存储在'dir'变量中的dom元素的子元素。在您的示例中,dir
是选择器的上下文。从Felix在评论中的链接:
默认情况下,选择器从文档根开始在DOM中执行搜索。但是,可以使用$()函数的可选第二个参数为搜索提供备用上下文。例如,要在事件处理程序中执行搜索,可以对搜索进行如下限制:
$('div.foo').click(function() {
$('span', this).addClass('bar');
});
从jquery文档中
:has()选择器
选择至少包含以下内容的元素:
至少有一个元素与
指定的选择器
表达式$('div:has(p)')匹配
如果
存在于
它的后代,不仅仅是一个直系亲属
孩子
关于jQuery的第二个参数,它是上下文。它可以是选择器操作的DOM元素
就你而言:
var dir将有一个表
,它是
将获取所有具有类的
元素。存储
.parents("table")[0];
将获取这些
所在的表
$("a.store:has(b)", dir);
将使用以前找到的表dir
作为上下文,查找所有具有类.store
并包含
元素的
元素,这意味着它不会遍历整个文档以查找匹配项,而只遍历这些表。以最简单的形式
这相当于做
$('someParent').find('.matchingDescendants');
jQuery有文档:更准确地说,是子代,而不仅仅是子代。
$('someParent').find('.matchingDescendants');