$(“同一元素的类”,元素)是什么意思?

我不会解释这种语法:

var dir = $("a.store").parents("table")[0]; var stores = $("a.store:has(b)", dir); 

store什么包含?

"$("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)’)匹配

如果

存在于其后代中的任何位置,而不仅仅是直接子项。

http://api.jquery.com/has-selector/

关于jQuery的第二个参数,它是上下文。 它可以是选择器操作的DOM元素。

在你的情况下:var dir将有一个tabletable

store变量将仅包含那些在其中包含 a

 $("a.store") 

将获得具有类.store所有元素

 .parents("table")[0]; 

将得到这些所在的表格。

 $("a.store:has(b)", dir); 

将找到所有具有类.store并包含元素的元素,使用先前找到的表dir作为上下文,这意味着它不会遍历整个文档来查找匹配项,而只会查看这些表。

最简单的forms..

它相当于做..

 $('someParent').find('.matchingDescendants');