Jquery的parent和parents(找到某一特定的祖先元素)用法
2015-07-09 17:50
1016 查看
[html] view
plaincopy
<!--
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>
[html] view
plaincopy
<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。
另一个例子中:
[html] view
plaincopy
<div>
<p>Hello</p>
<p>Hello</p>
</div>
$('p').parent() 得到的是:<div><p>Hello</p><p>Hello</p></div>对象,因为p标签的父标签是div
有关parents
[html] view
plaincopy
<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);
plaincopy
<!--
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>
[html] view
plaincopy
<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。
另一个例子中:
[html] view
plaincopy
<div>
<p>Hello</p>
<p>Hello</p>
</div>
$('p').parent() 得到的是:<div><p>Hello</p><p>Hello</p></div>对象,因为p标签的父标签是div
有关parents
[html] view
plaincopy
<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);
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- JavaScript演示排序算法
- jQuery Ajax 跨域调用
- jquery教程靠边站,一分钱不花让你免费学会jquery
- JQuery+Strusts1.x无刷新登录
- JQuery 初体验(建议学习jquery)
- Jquery实现的table最后一行添加样式的代码
- jQuery 练习[一] 学习jquery的准备工作
- jquery获得页面元素的坐标值实现思路及代码
- jquery如何实现在加载完iframe的内容后再进行操作
- jquery $.ajax()取xml数据的小问题解决方法
- jQuery '行 4954 错误: 不支持该属性或方法' 的问题解决方法
- Jquery 表单取值赋值的一些基本操作
- jQuery实现复选框批量选择与反选的方法
- jQuery中的常用事件总结
- 23个超流行的jQuery相册插件整理分享
- 影响jQuery使用的14个方面
- jQuery 仿百度输入标签插件附效果图
- jQuery学习笔记之jQuery的动画
- jquery通过closest选择器修改上级元素的方法