Только для уточнения:
которые не имеют класса span.sandwich:visible
span.sandwich:visible
это не класс.
sandwich
это класс.
span.sandwich
- это любой элемент span
с классом sandwich
.
span.sandwich:visible
- это любой элемент span
с классом sandwich
, равным visible
.
Итак, пытаясь интерпретировать ваш вопрос, я получаю:
Внутри "div.row: visible" ...
В пределах видимых div
элементов с классом row
...
Я хочу исчезнуть все дочерние элементы (), у которых нет класса span.sandwich: visible
Вы хотите, чтобы 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>
ОКОНЧАТЕЛЬНОЕ РЕДАКТИРОВАНИЕ НА ОСНОВЕ КОММЕНТАРИЙ
http://jsfiddle.net/DDmsh/4/
и если вы хотите указать только div.row
родителей: http://jsfiddle.net/DDmsh/5/