欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

jQuery 遍歷 - is() 方法

實例

返回 false,因為 input 元素的父元素是 p 元素:

  var isFormParent = $("input[type='checkbox']").parent().is("form");
  $("div").text("isFormParent = " + isFormParent);

親自試一試

定義和用法

is() 根據(jù)選擇器、元素或 jQuery 對象來檢測匹配元素集合,如果這些元素中至少有一個元素匹配給定的參數(shù),則返回 true。

語法

.is(selector)
參數(shù) 描述
selector 字符串值,包含匹配元素的選擇器表達(dá)式。

詳細(xì)說明

與其他篩選方法不同,.is() 不創(chuàng)建新的 jQuery 對象。相反,它允許我們在不修改 jQuery 對象內(nèi)容的情況下對其進(jìn)行檢測。這在 callback 內(nèi)部通常比較有用,比如事件處理程序。

假設(shè)我們有一個列表,其中兩個項目包含子元素:

<ul>
  <li>list <strong>item 1</strong></li>
  <li><span>list item 2</span></li>
  <li>list item 3</li>
</ul>

您可以向 <ul> 元素添加 click 處理程序,然后把代碼限制為只有當(dāng)列表項本身,而非子元素,被點擊時才進(jìn)行觸發(fā):

$("ul").click(function(event) {
  var $target = $(event.target);
  if ( $target.is("li") ) {
    $target.css("background-color", "red");
  }
});

親自試一試

現(xiàn)在,當(dāng)用戶點擊的是第一個列表項中的單詞 "list" 或第三個列表項中的任何單詞時,被點擊的列表項會被設(shè)置為紅色背景。不過,當(dāng)用戶點擊第一個列表項中的 item 1 或第二個列表項中的任何單詞時,都不會有任何變化,這是因為這上面的情況中,事件的目標(biāo)分別是 <strong> 是 <span>。

請您注意,對于帶有位置性選擇器的選擇器表達(dá)式字符串,比如 :first、:gt() 或者 :even,位置性篩選是針對傳遞到 .is() 的 jQuery 對象進(jìn)行的,而非針對包含文檔。所以對于上面的 HTML 來說,諸如 $("li:first").is("li:last") 的表達(dá)式返回 true,但是 $("li:first-child").is("li:last-child") 返回 false。

使用函數(shù)

該方法的第二種用法是,對基于函數(shù)而非選擇器的相關(guān)元素的表達(dá)式進(jìn)行求值。對于每個元素來說,如果該函數(shù)返回 true,則 .is() 也返回 true。例如,下面是稍微復(fù)雜的 HTML 片段:

<ul>
  <li><strong>list</strong> item 1 - one strong tag</li>
  <li><strong>list</strong> item <strong>2</strong> -
    two <span>strong tags</span></li>
  <li>list item 3</li>
  <li>list item 4</li>
  <li>list item 5</li>
</ul>

您可以向每個 <li> 添加 click 處理程序,以計算在被點擊的 <li> 內(nèi)部 <strong> 元素的數(shù)目:

$("li").click(function() {
  var $li = $(this),
    isWithTwo = $li.is(function() {
      return $('strong', this).length === 2;
    });
  if ( isWithTwo ) {
    $li.css("background-color", "green");
  } else {
    $li.css("background-color", "red");
  }
});

親自試一試