jQuery遍歷之parents()方法
jQuery是一個合集對象,如果想快速查找合集里面的每一個元素的所有祖輩元素,此時可以用parents()方法
其實也類似find與children的區(qū)別,parent只會查找一級,parents則會往上一直查到查找到祖先節(jié)點
理解節(jié)點查找關系:
<div class="div">
<ul class="son">
<li class="grandson">1</li>
</ul>
</div>
在li節(jié)點上找到祖 輩元素div, 這里可以用$("li").parents()方法
parents()無參數(shù)
parents()方法允許我們能夠在DOM樹中搜索到這些元素的祖先元素,從有序的向上匹配元素,并根據(jù)匹配的元素創(chuàng)建一個新的 jQuery 對象;
返回的元素秩序是從離他們最近的父級元素開始的
注意:jQuery是一個合集對象,所以通過parent是匹配合集中所有元素的祖輩元素
parents()方法選擇性地接受同一型選擇器表達式
同樣的也是因為jQuery是合集對象,可能需要對這個合集對象進行一定的篩選,找出目標元素,所以允許傳一個選擇器的表達式
注意事項:
1 .parents()和.parent()方法是相似的,但后者只是進行了一個單級的DOM樹查找
2 $( "html" ).parent()方法返回一個包含document的集合,而$( "html" ).parents()返回一個空集合。
具體的操作,請參考右邊的代碼
任務
請在右邊代碼區(qū)域的第75行填入任務代碼
找到class="item-b"元素的所有祖輩元素
并且附上一個紅色的邊框
- ?不會了怎么辦
-
$('.item-b').parents().css('border', '2px solid red')
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title></title>
<style>
.left {
width: auto;
height: 350px;
}
.left div {
width: 350px;
height: 150px;
padding: 5px;
margin: 5px;
float: left;
background: #bbffaa;
border: 1px solid #ccc;
}
span {
color: blue;
}
</style>
<script src="http://idcbgp.cn/static/lib/jquery/1.9.1/jquery.js"></script>
</head>
<body>
<h2>parents方法()</h2>
<div class="left first-div">
<div class="div">
<ul class="level-2">
<!-- A -->
<li class="item-a">A</li>
<!-- B -->
<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>
<!-- C -->
<li class="item-c">C</li>
</ul>
</div>
<div class="div">
<ul class="level-2">
<!-- A -->
<li class="item-a">A</li>
<!-- B -->
<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>
<!-- C -->
<li class="item-c">C</li>
</ul>
</div>
</div>
<button>點擊:parents無參數(shù)</button>
<button>點擊:parents傳遞選擇器</button>
<script type="text/javascript">
$("button:first").click(function() {
//?
})
</script>
<script type="text/javascript">
$("button:last").click(function() {
//找到當前元素的所有祖輩元素,篩選出class="first-div"的元素
//并且附上一個邊
$('.item-b').parents('.first-div').css('border', '2px solid blue')
})
</script>
</body>
</html>
請驗證,完成請求
由于請求次數(shù)過多,請先驗證,完成再次請求