精品熟女碰碰人人a久久,多姿,欧美欧美a v日韩中文字幕,日本福利片秋霞国产午夜,欧美成人禁片在线观看

jQuery 遍歷 closest() 方法

jQuery 遍歷 closest() 方法

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

closest() 方法獲得匹配選擇器的第一個祖先元素,從當前元素開始沿 DOM 樹向上。

 

1. 語法

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

如果給定表示 DOM 元素集合的 jQuery 對象,.closest() 方法允許我們檢索 DOM 樹中的這些元素以及它們的祖先元素,并用匹配元素構(gòu)造新的 jQuery 對象。.parents() 和 .closest() 方法類似,它們都沿 DOM 樹向上遍歷。兩者之間的差異盡管微妙,卻很重要:

.closest() .parents()
從當前元素開始 從父元素開始
沿 DOM 樹向上遍歷,直到找到已應(yīng)用選擇器的一個匹配為止。 沿 DOM 樹向上遍歷,直到文檔的根元素為止,將每個祖先元素添加到一個臨時的集合;如果應(yīng)用了選擇器,則會基于該選擇器對這個集合進行篩選。
返回包含零個或一個元素的 jQuery 對象 返回包含零個、一個或多個元素的 jQuery 對象

請看下面的 HTML 片段:

<ul id="one" class="level-1">
  <li class="item-i">I</li>
  <li id="ii" 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>

例子 1

假設(shè)我們執(zhí)行一個從項目 A 開始的對 <ul> 元素的搜索:

$('li.item-a').closest('ul').css('background-color', 'red');

這會改變 level-2 <ul> 的顏色,這是因為當向上遍歷 DOM 樹時會第一個遇到該元素。

例子 2

假設(shè)我們搜索的是 <li> 元素:

$('li.item-a').closest('li').css('background-color', 'red');

這會改變列表項目 A 的顏色。在向上遍歷 DOM 樹之前,.closest() 方法會從 li 元素本身開始搜索,直到選擇器匹配項目 A 為止。

例子 3

我們可以傳遞 DOM 元素作為 context,在其中搜索最接近的元素。

var listItemII = document.getElementById('ii');
$('li.item-a').closest('ul', listItemII).css('background-color', 'red');
$('li.item-a').closest('#one', listItemII).css('background-color', 'green');

以上代碼會改變 level-2 <ul> 的顏色,因為它既是列表項 A 的第一個 <ul> 祖先,同時也是列表項 II 的后代。它不會改變 level-1 <ul> 的顏色,因為它不是 list item II 的后代。

 

2. 范例

本例演示如何通過 closest() 完成事件委托。當被最接近的列表元素或其子后代元素被點擊時,會切換黃色背景:

$( document ).bind("click", function( e ) {
    $( e.target ).closest("li").toggleClass("hilight");
  });

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

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

jQuery 教程

相關(guān)文章