69pao国产精品视频-久久精品一区二区二三区-精品国产精品亚洲一本大道-99国产综合一区久久

jQuery 遍歷 find() 方法

jQuery 遍歷 find() 方法

jQuery 參考手冊 遍歷jQuery 參考手冊 遍歷

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

 

1. 語法

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

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

.find() 方法第一個明顯特征是,其接受的選擇器表達(dá)式與我們向 $() 函數(shù)傳遞的表達(dá)式的類型相同。將通過測試這些元素是否匹配該表達(dá)式來對元素進(jì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 開始來查找其中的列表項(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á)式,它也不會被包含在結(jié)果中;只會對后代進(jìn)行匹配。

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

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

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

var $allListElements = $('li');

然后將這個 jQuery 對象傳遞給 find 方法:

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

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

類似地,也可以傳遞一個元素:

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 參考手冊 遍歷jQuery 參考手冊 遍歷

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

jQuery 教程

相關(guān)文章