jQuery 遍歷 is() 方法
is() 根據(jù)選擇器、元素或 jQuery 對象來檢測匹配元素集合,如果這些元素中至少有一個(gè)元素匹配給定的參數(shù),則返回 true。
1. 語法
.is(selector)
參數(shù) | 描述 |
---|---|
selector | 字符串值,包含匹配元素的選擇器表達(dá)式。 |
與其他篩選方法不同,.is() 不創(chuàng)建新的 jQuery 對象。相反,它允許我們在不修改 jQuery 對象內(nèi)容的情況下對其進(jìn)行檢測。這在 callback 內(nèi)部通常比較有用,比如事件處理程序。
假設(shè)我們有一個(gè)列表,其中兩個(gè)項(xiàng)目包含子元素:
<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)列表項(xiàng)本身,而非子元素,被點(diǎn)擊時(shí)才進(jìn)行觸發(fā):
$("ul").click(function(event) { var $target = $(event.target); if ( $target.is("li") ) { $target.css("background-color", "red"); } });
現(xiàn)在,當(dāng)用戶點(diǎn)擊的是第一個(gè)列表項(xiàng)中的單詞 "list" 或第三個(gè)列表項(xiàng)中的任何單詞時(shí),被點(diǎn)擊的列表項(xiàng)會(huì)被設(shè)置為紅色背景。不過,當(dāng)用戶點(diǎn)擊第一個(gè)列表項(xiàng)中的 item 1 或第二個(gè)列表項(xiàng)中的任何單詞時(shí),都不會(huì)有任何變化,這是因?yàn)檫@上面的情況中,事件的目標(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。
2. 使用函數(shù)
該方法的第二種用法是,對基于函數(shù)而非選擇器的相關(guān)元素的表達(dá)式進(jìn)行求值。對于每個(gè)元素來說,如果該函數(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>
您可以向每個(gè) <li> 添加 click 處理程序,以計(jì)算在被點(diǎn)擊的 <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"); } });
3. 范例
返回 false,因?yàn)?input 元素的父元素是 p 元素:
var isFormParent = $("input[type='checkbox']").parent().is("form"); $("div").text("isFormParent = " + isFormParent);
- jQuery 效果 淡入淡出
- jQuery 添加元素
- jQuery 刪除元素
- jQuery css() 方法
- jQuery 遍歷 過濾
- jQuery noConflict() 方法
- jQuery 參考手冊 事件
- jQuery 參考手冊 遍歷
- jQuery 參考手冊 數(shù)據(jù)
- jQuery 參考手冊 核心
- jQuery 事件 click() 方法
- jQuery 事件 dblclick() 方法
- jQuery 事件 timeStamp 屬性
- jQuery 事件 keypress() 方法
- jQuery 事件 keyup() 方法
- jQuery 事件 mouseenter() 方法
- jQuery 事件 mousemove() 方法
- jQuery 事件 scroll() 方法
- jQuery 事件 trigger() 方法
- jQuery 事件 unload 屬性