jquery查找父元素、子元素(个人经验总结)


Posted in Javascript onApril 09, 2014

使用js或者jquery查找父元素、子元素经常遇到。可是用起来总容易混淆,这里统一总结了一下,以后用起来相信会方便好多

这里jquery向上查找父元素 用到的方法:closest() parents() parent()

向下查找子元素 用到的方法:find() children()

js用的是 children[] 属性

html代码

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>jquery查找父元素子元素</title> 
</head> 
<body> 

<div class="div1" id="div1" name="mydiv"> 
<p>段落1 查找父元素</p> 
<table id="table1"> 
<tbody id="tbody1"> 
<tr> 
<td id="mytd1">11closest()向上查找最近的元素(返回零个或一个元素的 jQuery 对象)</td> 
</tr> 
<tr id="mytr2"> 
<td id="mytd2">21parent()方法</td> 
</tr> 
<tr> 
<td id="mytd3">31parent("选择器")方法</td> 
</tr> 
</tbody> 
</table> 
</div> 

<hr> 
<div id="div2" style="border-bottom :5px;" name="mydiv"> 
<p>段落2 查找子元素</p> 
<table id="table2"> 
<tbody> 
<tr> 
<td id="sectd1">查找table2的td find()方法</td> 
</tr> 
<tr id="sectr2"> 
<td id="sectd2">查找table2的td children()方法</td> 
</tr> 
<tr> 
<td id="sectd3">js的children[]属性来查找</td> 
</tr> 
</tbody> 
<tbody> 
<tr> 
<td>tbody2222</td> 
</tr> 
</tbody> 
</table> 
</div> 
</body> 
</html>

js代码:
<script type="text/javascript" src="./js/jquery-1.7.2.js"></script> 
<script> $(function(){ 
/************ 查找父元素 *************/ 
//closest()方法 
$("#mytd1").bind("click",function(){ 
//alert($(this).html()); 
alert($(this).closest("table").attr("id")); //table1而不是table0 
//alert($(this).closest("table").html()); 
}); 
//parent()方法 
$("#mytd2").bind("click",function(){ 
//alert($(this).html()); //$(this).html()是21 (this).attr("id")是mytd2 
alert($(this).parent().parent().parent().attr("id")); 
//.parent()是tr 第二个.parent是tbody。即使没有tbody标签,找到的也是tbody 第三个.parent()是table 
//document.write("第一个parent的id:" + $(this).parent().attr("id") + "。 第二个parent的id是:"+$(this).parent().parent().attr("id") + "。 第三个parent的id是:"+$(this).parent().parent().parent().attr("id")); 
}); 
//parent("选择器") parents("选择器") 
$("#mytd3").bind("click",function(){ 
$("p").parent("#div1").css("background", "yellow");//这里换成了p标签。不知道为什么用this找不到元素 
//alert($(this).parent("#div").attr("id"));//undefined 
alert($(this).parents("div").attr("id"));//div1 注意一个parent parents 
}); 

/************ 查找子元素 *************/ 
//查找table2的td元素 find() 
$("#sectd1").bind("click",function(){ 
alert($("#table2").find("td").length); 
/* $("#table2").find("td").each(function(index,element){ 
alert($(element).text()); 
}); */ 
}); 
//children() 
$("#sectd2").bind("click",function(){ 
var table = $("#table2"); 
alert($("#table2").children().children().children("td[id='sectd2']").html()); 
//children() 是 tbody children()是 tr children("td[id='sectd2']")是td 
}); 

// js的 children[] 
$("#sectd3").bind("click",function(){ 
var table = document.getElementById("table2"); 
alert(table.children[0].children[2].children[0].innerHTML); 
//children[0] 是 tbody children[2]是 第三行的tr children[0]是td 
}); 
}); 
</script>
Javascript 相关文章推荐
javascript 获取select下拉列表值的代码
Sep 07 Javascript
jquery蒙版控件实现代码
Dec 08 Javascript
使用phantomjs进行网页抓取的实现代码
Sep 29 Javascript
js中document.write的那点事
Dec 12 Javascript
js动态添加的DIV中的onclick事件简单实例
Jul 25 Javascript
原生JS实现圆环拖拽效果
Apr 07 Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
Apr 13 Javascript
Node实战之不同环境下配置文件使用教程
Jan 02 Javascript
node.js到底要不要加分号浅析
Jul 11 Javascript
vue-cli 使用axios的操作方法及整合axios的多种方法
Sep 12 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
Jul 20 Javascript
JavaScript实现移动小精灵的案例代码
Dec 12 Javascript
js控制iframe的高度/宽度让其自适应内容
Apr 09 #Javascript
JS、DOM和JQuery之间的关系示例分析
Apr 09 #Javascript
jQuery遍历Table应用示例
Apr 09 #Javascript
通过url查找a元素并点击
Apr 09 #Javascript
js数组方法扩展实现数组统计函数
Apr 09 #Javascript
jquery实现pager控件示例
Apr 09 #Javascript
模拟用户点击弹出新页面不会被浏览器拦截
Apr 08 #Javascript
You might like
Windows下的PHP5.0安装配制详解
2006/09/05 PHP
phpexcel导入excel数据使用方法实例
2013/12/24 PHP
PHP批量删除、清除UTF-8文件BOM头的代码实例
2014/04/14 PHP
php技巧小结【推荐】
2017/01/19 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
Laravel路由研究之domain解决多域名问题的方法示例
2019/04/04 PHP
jquery 插件学习(四)
2012/08/06 Javascript
Firefox和IE兼容性问题及解决方法总结
2013/10/08 Javascript
使用 Node.js 做 Function Test实现方法
2013/10/25 Javascript
jQuery子属性过滤选择器用法分析
2015/02/10 Javascript
JS实现仿FLASH效果的竖排导航代码
2015/09/15 Javascript
Html5 js实现手风琴效果
2020/04/17 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
JavaScript如何一次性展示几万条数据
2017/03/30 Javascript
使用vue2实现购物车和地址选配功能
2018/03/29 Javascript
vue组件与复用详解
2018/04/08 Javascript
JavaScript函数定义方法实例详解
2019/03/05 Javascript
通过循环优化 JavaScript 程序
2019/06/24 Javascript
微信小程序3种位置API的使用方法详解
2019/08/05 Javascript
使用Vue实现一个树组件的示例
2020/11/06 Javascript
JS addEventListener()和attachEvent()方法实现注册事件
2021/01/11 Javascript
跟老齐学Python之有容乃大的list(2)
2014/09/15 Python
python中pandas.DataFrame排除特定行方法示例
2017/03/12 Python
Python根据文件名批量转移图片的方法
2018/10/21 Python
python如何查看微信消息撤回
2018/11/27 Python
Python如何输出百分比
2020/07/31 Python
HTML5自定义mp3播放器源码
2020/01/06 HTML / CSS
全球摩托车装备领导者:RevZilla
2017/09/04 全球购物
Coccinelle官网:意大利的著名皮具品牌
2019/05/15 全球购物
Notino罗马尼亚网站:购买香水和化妆品
2019/07/20 全球购物
Sperry澳大利亚官网:源自美国帆船鞋创始品牌
2019/07/29 全球购物
租房协议书
2014/04/10 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
用python批量解压带密码的压缩包
2021/05/31 Python
深入理解margin塌陷和margin合并的解决方案
2021/06/26 HTML / CSS
Redis基本数据类型String常用操作命令
2022/06/01 Redis