1. 程式人生 > >Jquery的parent和parents(找到某一特定的祖先元素)用法

Jquery的parent和parents(找到某一特定的祖先元素)用法

<!--
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>物件,
因為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);