Jquery的parent和parents,找到某一特定的祖先元素

关于Jquery的parent和parents

parent是指取得一个包含着所有匹配元素的唯一父元素的元素集合。

parents则是取得一个包含着所有匹配元素的祖先元素的元素集合(不包含根元素)。可以通过一个可选的表达式进行筛选。

可以看出parent取的很明确,就是当前元素的父元素;parents则是当前元素的祖先元素。下面列出例子说明:

<div >

<div ><p></p></div>

<div class='a'><p></p></div>

<div ><p></p></div>

</div>

$('p').parent()取到的是div2,div3,div4

$('p').parent('.a')取到的是div3

$('p').parent().parent()取到的是div1,这点比较奇特;不过Jquery对象本身的特点决定了这是可行的。

$('p').parents()取到的是div1,div2,div3,div4

$('p').parents('.a')取到的是div3

parent(exp)用法:取得一个包含着所有匹配元素的唯一父元素的元素集合。

  1. <script src="jquery-1.2.6.min.js" type="text/javascript"></script>
  2. <script type="text/javascript">
  3. $(document).ready(function() {
  4. $("#btn1").click(function(){
  5. alert($(this).parent().next().html());
  6. });
  7. });
  8. </script>
  9. </head>
  10. <body>
  11. <table>
  12. <tr>
  13. <td><input /></td>
  14. <td>some text</td>
  15. </tr>
  16. </table>
  17. ....

其中:

  1. this.parent()是input前面的td
  2. this.parent().parent()获取的是tr
  3. this.parent().parent().parent()获取的是table
  4. this.parent().next()获取的是td相临的td

另例子中:

<div><p>Hello</p><p>Hello</p></div>

$("p").parent() 得到的是:<div><p>Hello</p><p>Hello</p></div>对象,因为p标签的父标签是div.

jquery的parents()使用

今天遇到一个有意思的问题,jquery有两个函数parent()和parents().通过这两个函数可以找到一个对象的父对象,又称作jquery的选择器。举个例子:

<body>
<div >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 a").parents("div:eq(1)").children("div:eq(0)").html(); 

alert(id);