jquery исключить из выборки

Статья, в которой рассматривается метод библиотеки jQuery .not() .

Назначение метода not()

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

Все оставшиеся элементы текущего набора данный метод упаковывает в новый объект jQuery и возвращает его в качестве результата.

Данный метод имеет один обязательный параметр в качестве которого можно использовать:

  • селектор (строка, содержащая селектор), DOM-элемент, или массив элементов.
  • функция (function(Integer index, Element element) => Boolean). Функция используется как тест, который должен пройти каждый элемент текущего набора. Если элемент проходит тест (т.е. функция возвращает истинное значение для текущего элемента), то он отбирается. Функция может принимать 2 аргумента: index (индекс элемента в текущем наборе jQuery) и element (представляет собой текущий DOM-элемент). Внутри функции, для того чтобы обратиться к текущему DOM-элементу также можно использовать ключевое слово this .
  • набор элементов (объект jQuery).

Использование метода not()

Например, выбрать из всех элементов li только те, у которых индекс в текущей выборке нечётный (not even):

Данный оператор состоит из 2 частей: первая часть $(«li») — выбирает все элементы li на странице, вторая часть применит к выбранным элементам фильтр .not(«:even») , который возвратит новый объект jQuery, состоящий из элементов не соответствующих селектору «:even» . Т.е. отбирёт из первоначальной выборки, только нечётные элементы (not even) 1, 3, 5 и т.д. Кроме этого необходимо учитывать ещё то, что отчёт элементов начинается с 0 ( 0 элемент — это li , имеющий текст «Пункт1»; 1 элемент — это li , содержащий «Пункт2» и т.д.).

Например, убрать из первоначальной выборки, которая содержит все элементы li на странице, только тот, который имеет :

Данный оператор удалит из первоначальной выборки ( $(«li») ) элемент, имеющий . Таким образом, метод .not() вернёт новый объект jQuery, содержащий 4 элемента li .

Материал из JQuery

Исключает элементы удовлетворяющие селектору selector из найденных элементов.

$(‘div:not(.lBox)’) вернет все div-элементы, кроме тех, которые принадлежат классу lBox.
$(‘div:not(#bigBang)’) вернет все div-элементы, кроме элемента с идентификатором bigBang.
$(‘input[ > вернет все input-элементы с заданным идентификатором, кроме текстовых полей.

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

В действии

Отделим котлеты с мухами от нормальных котлет: выделим все элементы с классом rissole (котлета), кроме тех, которые содержат элементы с классом fly (муха):

Синтаксис

Описание

Селектор not исключает из найденных элементов указанные в селекторе.

Примеры

Получить все div элементы, кроме тех, у которых есть класс .post

Получить все div элементы, кроме элемента с идентификатором #advert

Оцените статью
SoftLast
Добавить комментарий