Выбор div по классу в jQuery, исключая определенный
Пройдите тест, узнайте какой профессии подходите
Быстрый ответ
Селектор :not()
в jQuery используется для исключения элементов с определённым классом. Допустим, вам нужно выбрать все элементы div
, но исключить те, что имеют класс "exclude"
. В этом случае, конструкция может выглядеть следующим образом:
$('div:not(.exclude)') // Будут выбраны все элементы, кроме тех, которые имеют класс 'exclude'
Если же требуется отсеять элементы с определённым классом, начинающимся с определённого набора символов, можно использовать комбинацию селектора атрибутов и :not()
:
$('div[class^="special-"]:not(.special-skip)')
// Выберутся все элементы div, классы которых начинаются на 'special-', за исключением тех, что имеют класс 'special-skip'
Пошаговое руководство к эффективному использованию селекторов jQuery
Селекторы и фильтры в jQuery предоставляют нам огромные возможности для точных и гибких выборок элементов. Разберём несколько примеров использования:
Интеллектуальное использование комбинации селектора атрибутов и :not()
Для исключения элементов с определённым классом можно комбинировать селектор атрибутов с :not()
:
$('div[class^="first-"]:not(.first-bar)')
// Будут выбраны все div, классы которых начинаются на "first-", исключая те, что имеют класс 'first-bar'
Практическое применение чейнинга метода .not()
Метод .not()
в jQuery исключительно полезен в динамических сценариях. Он позволяет сначала формировать выборку, а потом отсеивать из неё элементы с нежелательными классами:
$('div[class^="first-"]').not('.first-bar')
// 'first-bar' будет исключён из начальной выборки
Управление сложными выборками при помощи цепных вызовов методов
Метод .not()
становится особенно актуальным при использовании в динамических сценариях или при обновлении страницы, когда нужно отфильтровать классы, которые мешают корректной работе кода:
$("div").not(".second-tier,.third-tier")
// Сначала выбираем все div, потом исключаем элементы с классами '.second-tier' и '.third-tier'
Визуализация
Представьте себе садовую вечеринку, где все гости в шляпах разных цветов. Но на эту вечеринку мы не приглашаем гостей в красных шляпах:
Гости вечеринки в саду: [👨🎩, 👩🧢, 👧👒, 👩🎓, 👴🎩, 👦🚫🎩]
Если использовать $(".guest:not('.red-hat')")
, то гости в красных шляпах не найдут себя в списке:
$(".guest:not('.red-hat')");
// Стиль – это всё, но гости в красных шляпах, к сожалению, не проходят.
И вот вам итоговый список гостей:
Приглашены: [👨🎩, 👩🧢, 👧👒, 👩🎓, 👴🎩]
// У нашей радуги нет места для красного цвета. 🌈
Использование сложных селекторов в :not()
Использование сложных CSS-селекторов в :not()
может вызвать затруднения из-за некоторых различий в работе Sizzle jQuery и querySelectorAll
автора. Метод .not()
может значительно упростить эту задачу:
$('div').not(function(index, element){
return $(element).is('.exclude, [class^="internal-"]');
});
// Элементы с классом 'exclude' и те, классы которых начинаются на 'internal-', будут безошибочно отфильтрованы.
Как избежать распространённых ошибок
При использовании :not()
и .not()
старайтесь избегать сложных конструкций. Помните, что читаемость и производительность кода – это важно. Сложные селекторы могут замедлить работу страницы и усложнить её отладку.
Полезные материалы
- .not() | Официальная документация jQuery API — подробное описание метода
.not()
. - :not() Selector | Официальная документация jQuery API — анализ синтаксиса селектора
:not()
и примеры его использования. - :not | CSS-Tricks — статья о работе CSS-селектора
:not()
. - :not() – CSS: Каскадные таблицы стилей | MDN — обзор синтаксиса CSS-селектора
:not()
от Mozilla. - jQuery :not() Selector — руководство и примеры использования селектора
:not()
от W3Schools. - Понимание селекторов jQuery – Tutorial Republic — детальный обзор селекторов jQuery, включая
:not()
.