jQuery - not (метод)

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

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

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

jQuery - Метод .not()

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

  • селектор (строка, содержащая селектор), DOM-элемент, или массив элементов.
    //выбрать все элементы кроме p (селектор)
    $('*').not('p');
    //выбрать все элементы кроме p (массив элементов)
    $('*').not(document.getElementsByTagName("P"));
    //выбрать все элементы кроме DOM-элемента, имеющего id="myP"
    $('*').not(document.getElementById("myP"));
    
  • функция (function(Integer index, Element element) => Boolean). Функция используется как тест, который должен пройти каждый элемент текущего набора. Если элемент проходит тест (т.е. функция возвращает истинное значение для текущего элемента), то он отбирается. Функция может принимать 2 аргумента: index (индекс элемента в текущем наборе jQuery) и element (представляет собой текущий DOM-элемент). Внутри функции, для того чтобы обратиться к текущему DOM-элементу также можно использовать ключевое слово this.
    //выбрать все элементы p, кроме тех которые имеют класс .alert
    $('p').not(function() {
      return $(this).hasClass("alert");
    });
    
  • набор элементов (объект jQuery).
    //выбрать все элементы кроме p
    $('*').not($('p'));
    

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

<ul>
  <li>Пункт 1</li>
  <li>Пункт 2</li>
  <li>Пункт 3</li>
  <li>Пункт 4</li>
  <li>Пункт 5</li>
</ul>

<script>
$("li").not(":even");
</script>

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

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

<ul>
  <li>Пункт 1</li>
  <li>Пункт 2</li>
  <li id="myElement">Пункт 3</li>
  <li>Пункт 4</li>
  <li>Пункт 5</li>
</ul>

<script>
$("li").not("#myElement");
//или
$("li").not(document.getElementById("#myElement")).  
</script>

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



   JavaScript и jQuery 0    971 -1

Комментарии (0)

    Вы должны авторизоваться, чтобы оставлять комментарии.