.not()

.not( selector ) 官网原E文: jQuery

描述: 删除匹配的元素集合中元素。

  • version added: 1.0.not( selector )

    selector选择器字符串,用于确定到哪个前辈元素时停止匹配。

  • version added: 1.0.not( elements )

    elements匹配的元素集合一个或多个DOM元素。

  • version added: 1.4.not( function(index) )

    function(index)一个用来检查集合中每个元素的函数。this是当前的元素。

如果提供的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(':even').css('background-color', 'red');

此调用的结果是项目2和4下为红色的背景,因为它们不匹配选择(记得:even 和 :odd使用基于0的索引)。

删除特殊的元素

第二个版本.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在排除过滤集合中的元素;所有其他元素都包括在内。

Examples:

Example: Adds a border to divs that are not green or blue.

<!DOCTYPE html>
<html>
<head>
  <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="http://code.jquery.com/jquery-latest.min.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>

Demo:

Example: Removes the element with the ID "selected" from the set of all paragraphs.

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

Example: Removes the element with the ID "selected" from the set of all paragraphs.

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

Example: Removes all elements that match "div p.selected" from the total set of all paragraphs.

$("p").not($("div p.selected"))
jQuery 1.6 API 中文版Clove整理、修订