.not( selector )Возвращает: jQuery
Описание: Удаляет элементы из набора совпавших элементов.
-
версия добавлена: 1.0.not( selector )
- selectorСтрока, содержащая выражение селектора, DOM-элемент или массив элементов для сопоставления с набором.
-
-
версия добавлена: 1.4.not( function )
- functionФункция, используемая в качестве теста для каждого элемента в наборе. Она принимает два аргумента,
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" ) );