jQuery Pagbubukas - Pagkatanggal ng method

Halimbawa

Magtanggal ng paragrapo na may id na "selected" mula sa koleksyon ng lahat ng paragrapo:

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

親自試試

Paglilinaw at paggamit

not() Magtanggal ng elemento mula sa koleksyon ng pinagmumulan.

語法 1

.not(selector)
參數 描述
selector 字符串值,包含用於匹配元素的选择器表達式。

語法 2

.not(element)
參數 描述
element 一個或多個需要從匹配集中刪除的 DOM 元素。

語法 3

.not(function(index))
參數 描述
function(index) 用於檢測集合中每個元素的函數。this 是當前 DOM 元素。

詳細說明

如果給定一個表示 DOM 元素集合的 jQuery 對象,.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(':even').css('background-color', 'red');

親自試試

這次調用的結果是將項目 2 和 4 設置為紅色背景,這是因為它們不匹配選擇器(回想一下,:even 和 :odd 均使用基於 0 的 index)。

移除具體的元素

.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、3 和 5 的背景色。我們可以用更簡單的 jQuery 表達式來完成同樣的事情,但是這項技術在比方說其他庫提供對純 DOM 處理的引用時會很有用。

對於 jQuery 1.4,.not() 方法能夠使用函數作為其參數,與 .filter() 方法相同。其函數返回 true 的元素會被排除在過濾集之外;所有其他元素將被包含其中。