$(“同一元素的类”,元素)是什么意思?
我不会解释这种语法:
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将有一个table
是父
table
store变量将仅包含那些在其中包含 a
$("a.store")
.parents("table")[0];
$("a.store:has(b)", dir);
将找到所有具有类.store
并包含元素的
元素,使用先前找到的表
dir
作为上下文,这意味着它不会遍历整个文档来查找匹配项,而只会查看这些表。
最简单的forms..
它相当于做..
$('someParent').find('.matchingDescendants');