.parentsUntil()
.parentsUntil( [ selector ] ) 返回: jQuery
描述: 查找當前元素的所有的前輩元素,直到遇到選擇器匹配的元素為止,不包括那個匹配到的元素。
-
version added: 1.4.parentsUntil( [ selector ] )
selector選擇器字符串,用于確定到哪個前輩元素時停止匹配。
>如果提供一個jQuery對象代表DOM元素集合, .parentsUntil() 方法會找遍所有這些元素的前輩元素,直到遇到了跟參數(shù)匹配的元素才會停止。返回的jQuery對象中包含了所有找到的前輩元素,除了與 .parentsUntil() 選擇器匹配的那個元素??紤]如下的嵌套列表:
<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>
如果我們從項目 A 開始找它的前輩,但不包括 <ul class="level-1"> ,就可以用下面代碼:
$('li.item-a').parentsUntil('.level-1')
.css('background-color', 'red');
結(jié)果就是 level-2 列表和項目 II 的背景變紅。
如果提供給 .parentsUntil() 的選擇器沒有匹配到任何東西,或者干脆沒有提供選擇器,那么返回的對象會是這個對象所有的前輩元素。例如再次從項目 A 開始找,但這次使用一個匹配不到任何東西的選擇器:
$('li.item-a').parentsUntil('.not-here')
.css('background-color', 'red');
其結(jié)果是給 level-2 列表, 項目 II, level-1 列表, <body> 元素和 <html> 元素都設置了紅色背景。
Example:
查找 <li class="item-a"> 的前輩,直到 <ul class="level-1"> 為止,并給它們設置紅色背景。
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<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>
<script>
$('li.item-a').parentsUntil('.level-1')
.css('background-color', 'red');
</script>
</body>
</html>