Содержание
- Материал из JQuery
- В действии
- Назначение метода not()
- Использование метода not()
- jQuery. Выбрать все элементы кроме текущего (this)
Материал из JQuery
Исключает элементы удовлетворяющие селектору selector из найденных элементов.
Метод .not() выполняет то же самое, что и рассматриваемый селектор, и чаще всего, при его использовании, код получается более читаемым, чем при использовании селектора :not().
В действии
Отделим котлеты с мухами от нормальных котлет: выделим все элементы с классом rissole (котлета), кроме тех, которые содержат элементы с классом fly (муха):
Статья, в которой рассматривается метод библиотеки 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. Выбрать все элементы кроме текущего (this)
Иногда при разработке стоит задача выбрать все элементы одного стиля или типа, кроме одного выбранного или выделенного.
Например, у нас есть несколько картинок с одинаковым классом.
При наведении мышки на одну из этих картинок она должна, немного, увеличится, а остальные уменьшиться.
Для решения этой задачки в jQuery можно написать следующее:
В результате, при наведении мышки на картинку, мы сохраняем ее id во временную переменную и затем циклом проходим по всем картинкам с классом myimg. Если текущий id картинки в цикле равен id который во временной переменной то увеличиваем размеры картинки, иначе – уменьшаем.
Добавлено — Среда, Октябрь 20th, 2010, 23:04 Раздел — jQuery, Заметки. Подписаться на RSS 2.0. Оставьте комментарий, или trackback с вашего сайта.
Источник: