Spec-Zone.ru › jQuery

.not()

.not( selector )Возвращает: jQuery

Описание: Удаляет элементы из набора совпавших элементов.

  • версия добавлена: 1.0.not( selector )

    • selector
      Тип: Селектор или Элемент или Массив
      Строка, содержащая выражение селектора, DOM-элемент или массив элементов для сопоставления с набором.
  • версия добавлена: 1.4.not( function )

    • function
      Тип: Функция( Целое число индекс, Элемент element ) => Булево
      Функция, используемая в качестве теста для каждого элемента в наборе. Она принимает два аргумента, index, который представляет индекс элемента в коллекции jQuery, и element, который представляет DOM-элемент. Внутри функции this ссылается на текущий DOM-элемент.
  • версия добавлена: 1.4.not( selection )

    • selection
      Тип: jQuery
      Существующий объект jQuery для сопоставления текущего набора элементов.

Учитывая объект jQuery, представляющий набор DOM-элементов, метод .not() создает новый объект jQuery из подмножества совпавших элементов. Указанный селектор проверяется для каждого элемента; элементы, которые не соответствуют селектору, будут включены в результат.

Представьте страницу со списком:

<ul>
  <li>list item 1</li>
  <li>list item 2</li>
  <li>list item 3</li>
  <li>list item 4</li>
  <li>list item 5</li>
</ul>

Мы можем применить этот метод к набору элементов списка:

$( "li" ).not( ":nth-child(2n)" ).css( "background-color", "red" );

Результат этого вызова — красный фон для элементов 1, 3 и 5, поскольку они не соответствуют селектору.

Удаление конкретных элементов

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

<ul>
  <li>list item 1</li>
  <li>list item 2</li>
  <li id="notli">list item 3</li>
  <li>list item 4</li>
  <li>list item 5</li>
</ul>

Мы можем извлечь третий элемент списка с помощью встроенной JavaScript-функции getElementById(), а затем удалить его из объекта jQuery:

$( "li" ).not( document.getElementById( "notli" ) )
  .css( "background-color", "red" );

Это утверждение изменяет цвет элементов 1, 2, 4 и 5. Мы могли бы добиться того же результата более простым выражением jQuery, но этот метод полезен, когда, например, другие библиотеки предоставляют ссылки на обычные DOM-узлы.

Начиная с jQuery 1.4, метод .not() может принимать функцию в качестве аргумента так же, как и .filter(). Элементы, для которых функция возвращает true, исключаются из отфильтрованного набора; все остальные элементы включаются.

Примечание: Когда строка CSS-селектора передается в .not(), текстовые и комментарийные узлы всегда удаляются из результирующего объекта jQuery во время процесса фильтрации. Когда предоставляется конкретный узел или массив узлов, текстовые или комментарийные узлы будут удалены из объекта jQuery только в том случае, если они соответствуют одному из узлов в массиве фильтрации.

Примеры:

Добавляет границу к div, которые не зеленые или синие.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>not demo</title>
  <style>
  div {
    width: 50px;
    height: 50px;
    margin: 10px;
    float: left;
    background: yellow;
    border: 2px solid white;
  }
  .green {
    background: #8f8;
  }
  .gray {
    background: #ccc;
  }
  #blueone {
    background: #99f;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
 
<div></div>
<div id="blueone"></div>
<div></div>
<div class="green"></div>
<div class="green"></div>
<div class="gray"></div>
<div></div>
 
<script>
$( "div" ).not( ".green, #blueone" )
  .css( "border-color", "red" );
</script>
 
</body>
</html>

Демо:

Удаляет элемент с ID "selected" из набора всех абзацев.

$( "p" ).not( $( "#selected" )[ 0 ] );

Удаляет элемент с ID "selected" из набора всех абзацев.

$( "p" ).not( "#selected" );

Удаляет все элементы, которые соответствуют "div p.selected", из общего набора всех абзацев.

$( "p" ).not( $( "div p.selected" ) );

© The jQuery Foundation and other contributors
Licensed under the MIT License.
https://api.jquery.com/not

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API