2015-11-23 34 views
1

比方说,我想找回谁拥有active子元素:相对于另一个选择信息相匹配的结果集

$('.a .active').parents('.a'); 

有没有办法初始查询,在那里你可以指定选择范围内实现这一目标作为一个参数,结果集的选择器作为另一个参数?

喜欢的东西:

$('.a .active', '.a'); 

回答

2

你可以为了使用:has() selector选择包含.active后代元素.a元素:

$('.a:has(.active)'); 

值得指出的是$('.active', '.a')context selector这将选择.active元素的后代元素。

换句话说,

$('.active', '.a'); 

基本上等同于:

$('.a').find('.active'); 

两个查询的上面将匹配如下:

<div class="a"> 
    <span class="active">This would be selected by both of the above.</span> 
</div> 

于是选择,$('.a .active', '.a'),会试图选择嵌套在.a元素中,然后在另一.a元素(example).active后代元素:

$('.a .active', '.a') 
<div class="a"> 
    <div class="a"> 
     <span class="active">Select this.</span> 
    </div> 
</div> 
+0

感谢约什为深入解释! – smaili