Jquery的parent和parents(找到某一特定的祖先元素)用法
阿新 • • 發佈:2019-01-10
<!-- parent是指取得一個包含著所有匹配元素的唯一父元素的元素集合。 parents則是取得一個包含著所有匹配元素的祖先元素的元素集合(不包含根元素)。可以通過一個可選的表示式進行篩選。 parent取得很明確就是當前元素的父元素 parents則是當前元素的祖先元素 --> <html> <head></head> <body> <div id="div1"> <div id="div2"><p></p></div> <div id="div3" class="a"><p></p></div> <div id="div4"><p></p></div> </div> </body> <script type="text/javascript" src="jquery-1.7.1.min.js"></script> <script type="text/javascript"> $("p").parent(); //取得的是div2、div3、div4 $('p').parent('.a'); //取得是div3 $('p').parent().parent(); //取得是div1(這點比較奇特,不過Jquery物件本身的特點決定了這是可行的) $('p').parents(); //取得的是div1、div2、div3、div4 $('p').parents('.a'); //取得的是div3 </script> </html>
<body> <table> <tr> <td><input id="btn1" class="btn" type="button" value="test"/></td> <td>some text</td> </tr> </table> </body> <script type="text/javascript" src="jquery-1.7.1.min.js"></script> <script type="text/javascript"> $(function(){ $("#btn1").click(function(){ alert($(this).parent().next().html()); }); });
列印結果:some text
其中:
1、this.parent() 獲取的是input前面的td;
2、this.parent().parent() 獲取的是tr;
3、this.parent().parent().parent() 獲取的是table;
4、this.parent().next() 獲取的是input前面的td相鄰的另一個td。
另一個例子中:
<div>
<p>Hello</p>
<p>Hello</p>
</div>
$('p').parent() 得到的是:<div><p>Hello</p><p>Hello</p></div>物件,有關parents
<div id="one">
<div id="Two">hello</div>
<div id="Three">
<p><a href="#">tonsh</a></p>
</div>
</div>
$("a").parent() 將會得到父物件<p>
$("a").parents() 得到父物件<p><div.3><div.1>
$("a").parents().filter("div") 將得到<div.3><div.1> 還可以寫成$("a").parents("div")。
如果想得到<div.2>物件可以寫成這樣:$("a").parents("div:eq(0)")。
如果點選<a>連結時彈出<div.2>中的內容該怎麼辦?
var id=$("a").parents("div:eq(1)").children("div:eq(0)").html();
alert(id);