jQuery 遍歷 - has() 方法
實(shí)例
檢測(cè)某個(gè)元素是否在另一個(gè)元素中:
$("ul").append("<li>" + ($("ul").has("li").length ? "Yes" : "No") + "</li>");
$("ul").has("li").addClass("full");
定義和用法
has() 將匹配元素集合縮減為擁有匹配指定選擇器或 DOM 元素的后代的子集。
語(yǔ)法
.has(selector)
| 參數(shù) | 描述 |
|---|---|
| selector | 字符串值,包含匹配元素的選擇器表達(dá)式。 |
詳細(xì)說(shuō)明
如果給定一個(gè)表示 DOM 元素集合的 jQuery 對(duì)象,.has() 方法用匹配元素的子集來(lái)構(gòu)造一個(gè)新的 jQuery 對(duì)象。所使用的選擇器用于檢測(cè)匹配元素的后代;如果任何后代元素匹配該選擇器,該元素將被包含在結(jié)果中。
請(qǐng)思考下面這個(gè)帶有嵌套列表的頁(yè)面:
<ul>
<li>list item 1</li>
<li>list item 2
<ul>
<li>list item 2-a</li>
<li>list item 2-b</li>
</ul>
</li>
<li>list item 3</li>
<li>list item 4</li>
</ul>
我們可以對(duì)列表項(xiàng)集合應(yīng)用該方法,就像這樣:
$('li').has('ul').css('background-color', 'red');
該調(diào)用的結(jié)果是,項(xiàng)目 2 的背景被設(shè)置為紅色,這是因?yàn)樵擁?xiàng)目是后代中唯一擁有 <ul> 的 <li>。