在'div.row:visible'中我想fadeOut所有没有类span.sandwich的子()可见,虽然我很难搞清楚。
这是我到目前为止所拥有的
$('div.row:visible').children('span.sandwich:visible').not('.sandwich:visible').fadeOut('200');
这似乎不起作用,任何人都可以帮助我
HTML
<div class='row'>
<span class='sandwich'>sandwich</span>
</div>
<div class='row'>
<span class='not-sandwich'>not sandwich</span>
</div>
答案 0 :(得分:1)
它可能会与孩子中的选择器混淆,你尝试过类似下面的东西,它应该选择所有的孩子,然后缩小选择范围:
$('div.row:visible').children().not('.sandwich:visible').fadeOut('200');
答案 1 :(得分:0)
我在菊花链jQuery选择方法之前遇到了麻烦,我能够通过嵌套选择器解决这些问题,如下所示:
$($($('div.row:visible').children('span.sandwich:visible')).not('.sandwich:visible')).fadeOut('200');
答案 2 :(得分:0)
只是为了澄清:
没有班级
span.sandwich:visible
span.sandwich:visible
不是一个班级。
sandwich
是一个班级。
span.sandwich
是具有span
类的任何sandwich
元素。
span.sandwich:visible
是span
个sandwich
类,visible
。
所以试着解释你的问题,我得到:
在'div.row:visible'...
中
在具有班级div
...
row
元素中
我想fadeOut所有没有类span.sandwich的子()
您希望fadeOut()
所有不 visible
span
个元素与sandwich
成员div.row
。
对我而言,转换为
$('div.row:visible').children('span.sandwich:not(:visible)').fadeOut('200');
根据您的HTML添加:
$('span').not('.sandwich').fadeOut(200);
将淡出整个范围:
<span class='not-sandwich'>not sandwich</span>
$('span').not('.sandwich').parent().fadeOut(200);
将淡出整个div:
<div class='row'>
<span class='not-sandwich'>not sandwich</span>
</div>
基于评论的最终编辑
如果您只想指定div.row
个父母:http://jsfiddle.net/DDmsh/5/