jQuery 遍歷 find() 方法

jQuery 遍歷 find() 方法

jQuery 參考手冊(cè) 遍歷jQuery 參考手冊(cè) 遍歷

find() 方法獲得當(dāng)前元素集合中每個(gè)元素的后代,通過(guò)選擇器、jQuery 對(duì)象或元素來(lái)篩選。

 

1. 語(yǔ)法

.find(selector)
參數(shù) 描述
selector 字符串值,包含供匹配當(dāng)前元素集合的選擇器表達(dá)式。

如果給定一個(gè)表示 DOM 元素集合的 jQuery 對(duì)象,.find() 方法允許我們?cè)?DOM 樹(shù)中搜索這些元素的后代,并用匹配元素來(lái)構(gòu)造一個(gè)新的 jQuery 對(duì)象。.find() 與 .children() 方法類似,不同的是后者僅沿著 DOM 樹(shù)向下遍歷單一層級(jí)。

.find() 方法第一個(gè)明顯特征是,其接受的選擇器表達(dá)式與我們向 $() 函數(shù)傳遞的表達(dá)式的類型相同。將通過(guò)測(cè)試這些元素是否匹配該表達(dá)式來(lái)對(duì)元素進(jìn)行過(guò)濾。

請(qǐng)思考下面這個(gè)簡(jiǎn)單的嵌套列表:

<ul class="level-1">
  <li class="item-i">I</li>
  <li class="item-ii">II
    <ul class="level-2">
      <li class="item-a">A</li>
      <li class="item-b">B
        <ul class="level-3">
          <li class="item-1">1</li>
          <li class="item-2">2</li>
          <li class="item-3">3</li>
        </ul>
      </li>
      <li class="item-c">C</li>
    </ul>
  </li>
  <li class="item-iii">III</li>
</ul>

我們將從列表 II 開(kāi)始來(lái)查找其中的列表項(xiàng):

$('li.item-ii').find('li').css('background-color', 'red');

這次調(diào)研的結(jié)果是,項(xiàng)目 A、B、1、2、3 以及 C 均被設(shè)置了紅色背景。即使項(xiàng)目 II 匹配選擇器表達(dá)式,它也不會(huì)被包含在結(jié)果中;只會(huì)對(duì)后代進(jìn)行匹配。

與其他的樹(shù)遍歷方法不同,選擇器表達(dá)式對(duì)于 .find() 是必需的參數(shù)。如果我們需要實(shí)現(xiàn)對(duì)所有后代元素的取回,可以傳遞通配選擇器 '*'。

選擇器 context 是由 .find() 方法實(shí)現(xiàn)的;因此,$('li.item-ii').find('li') 等價(jià)于 $('li', 'li.item-ii')。

對(duì)于 jQuery 1.6,我們還可以使用給定的 jQuery 集合或元素來(lái)進(jìn)行篩選。還是上面的嵌套列表,我們首先這樣寫:

var $allListElements = $('li');

然后將這個(gè) jQuery 對(duì)象傳遞給 find 方法:

$('li.item-ii').find( $allListElements );

上面的代碼會(huì)返回一個(gè) jQuery 集合,其中包含屬于列表 II 后代的列表元素。

類似地,也可以傳遞一個(gè)元素:

var item1 = $('li.item-1')[0];
$('li.item-ii').find( item1 ).css('background-color', 'red');

這次調(diào)用的結(jié)果是項(xiàng)目 1 被設(shè)置為紅色背景。

 

2. 范例

搜索所有段落中的后代 span 元素,并將其顏色設(shè)置為紅色:

$("p").find("span").css('color','red');

jQuery 參考手冊(cè) 遍歷jQuery 參考手冊(cè) 遍歷

下一節(jié):jQuery 遍歷 first() 方法

jQuery 教程

相關(guān)文章
亚洲国产精品第一区二区,久久免费视频77,99V久久综合狠狠综合久久,国产免费久久九九免费视频