Выбор div по классу в jQuery, исключая определенный

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Селектор :not() в jQuery используется для исключения элементов с определённым классом. Допустим, вам нужно выбрать все элементы div, но исключить те, что имеют класс "exclude". В этом случае, конструкция может выглядеть следующим образом:

JS
Скопировать код
$('div:not(.exclude)')  // Будут выбраны все элементы, кроме тех, которые имеют класс 'exclude'

Если же требуется отсеять элементы с определённым классом, начинающимся с определённого набора символов, можно использовать комбинацию селектора атрибутов и :not():

JS
Скопировать код
$('div[class^="special-"]:not(.special-skip)')  
// Выберутся все элементы div, классы которых начинаются на 'special-', за исключением тех, что имеют класс 'special-skip'
Кинга Идем в IT: пошаговый план для смены профессии

Пошаговое руководство к эффективному использованию селекторов jQuery

Селекторы и фильтры в jQuery предоставляют нам огромные возможности для точных и гибких выборок элементов. Разберём несколько примеров использования:

Интеллектуальное использование комбинации селектора атрибутов и :not()

Для исключения элементов с определённым классом можно комбинировать селектор атрибутов с :not():

JS
Скопировать код
$('div[class^="first-"]:not(.first-bar)')  
// Будут выбраны все div, классы которых начинаются на "first-", исключая те, что имеют класс 'first-bar'

Практическое применение чейнинга метода .not()

Метод .not() в jQuery исключительно полезен в динамических сценариях. Он позволяет сначала формировать выборку, а потом отсеивать из неё элементы с нежелательными классами:

JS
Скопировать код
$('div[class^="first-"]').not('.first-bar')  
// 'first-bar' будет исключён из начальной выборки

Управление сложными выборками при помощи цепных вызовов методов

Метод .not() становится особенно актуальным при использовании в динамических сценариях или при обновлении страницы, когда нужно отфильтровать классы, которые мешают корректной работе кода:

JS
Скопировать код
$("div").not(".second-tier,.third-tier")    
// Сначала выбираем все div, потом исключаем элементы с классами '.second-tier' и '.third-tier'

Визуализация

Представьте себе садовую вечеринку, где все гости в шляпах разных цветов. Но на эту вечеринку мы не приглашаем гостей в красных шляпах:

Markdown
Скопировать код
Гости вечеринки в саду: [👨🎩, 👩🧢, 👧👒, 👩🎓, 👴🎩, 👦🚫🎩]

Если использовать $(".guest:not('.red-hat')"), то гости в красных шляпах не найдут себя в списке:

JS
Скопировать код
$(".guest:not('.red-hat')"); 
// Стиль – это всё, но гости в красных шляпах, к сожалению, не проходят.

И вот вам итоговый список гостей:

Markdown
Скопировать код
Приглашены: [👨🎩, 👩🧢, 👧👒, 👩🎓, 👴🎩]
// У нашей радуги нет места для красного цвета. 🌈

Использование сложных селекторов в :not()

Использование сложных CSS-селекторов в :not() может вызвать затруднения из-за некоторых различий в работе Sizzle jQuery и querySelectorAll автора. Метод .not() может значительно упростить эту задачу:

JS
Скопировать код
$('div').not(function(index, element){
    return $(element).is('.exclude, [class^="internal-"]');
});
// Элементы с классом 'exclude' и те, классы которых начинаются на 'internal-', будут безошибочно отфильтрованы.

Как избежать распространённых ошибок

При использовании :not() и .not() старайтесь избегать сложных конструкций. Помните, что читаемость и производительность кода – это важно. Сложные селекторы могут замедлить работу страницы и усложнить её отладку.

Полезные материалы

  1. .not() | Официальная документация jQuery API — подробное описание метода .not().
  2. :not() Selector | Официальная документация jQuery API — анализ синтаксиса селектора :not() и примеры его использования.
  3. :not | CSS-Tricks — статья о работе CSS-селектора :not().
  4. :not() – CSS: Каскадные таблицы стилей | MDN — обзор синтаксиса CSS-селектора :not() от Mozilla.
  5. jQuery :not() Selector — руководство и примеры использования селектора :not() от W3Schools.
  6. Понимание селекторов jQuery – Tutorial Republic — детальный обзор селекторов jQuery, включая :not().