Ответ 1
jQuery("li:not([style])").hide();
У меня есть несколько объектов на странице, и я хочу выполнить операцию с использованием jQuery только для некоторых из них - тех, у которых нет указанного атрибута. Итак:
<li style='...'>some text</li>
<li style='...'>some other text</li>
<li>some very diffrent text</li>
и в javascript я бы:
$('li[style]').hide();
который скроет все элементы с помощью style
sttribute. Но если я хочу скрыть те без, как должен выглядеть мой селектор?
jQuery("li:not([style])").hide();
Вы можете использовать: not psuedo-selector для поиска элементов, которые не соответствуют определенному селектору. В вашем примере вы хотите выбрать все элементы li без атрибута style, поэтому вы должны использовать что-то вроде этого:
$('li:not([style])').hide();
Вы также можете комбинировать это с другими селекторами:
$('#div input:not(:checked)').show();
Это довольно мощный инструмент!
Попробуйте:
$('li:not([style])').hide();
Вы можете найти более понятным и более эффективным использование .not()
вместо селектора. В качестве примера:
$('li').not('[style]').hide();
Это также то, что разработчики jQuery рекомендуют.