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 相关文章推荐
显示、隐藏密码
Jul 01 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
May 20 Javascript
JS获取浏览器语言动态加载JS文件示例代码
Oct 31 Javascript
简介JavaScript中valueOf()方法的使用
Jun 05 Javascript
JavaScript中的Function函数
Aug 27 Javascript
js确认框confirm()用法实例详解
Jan 07 Javascript
jQuery  ready方法实现原理详解
Oct 19 Javascript
angular实现商品筛选功能
Feb 01 Javascript
利用JS如何计算字符串所占字节数示例代码
Sep 13 Javascript
为什么我们要做三份 Webpack 配置文件
Sep 18 Javascript
Vue3 响应式侦听与计算的实现
Nov 11 Javascript
vue中父子组件的参数传递和应用示例
Jan 04 Vue.js
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
php单文件版在线代码编辑器
2015/03/12 PHP
smarty模板判断数组为空的方法
2015/06/10 PHP
php使用正则表达式去掉html中的注释方法
2016/11/03 PHP
浅谈php中curl、fsockopen的应用
2016/12/10 PHP
jQuery)扩展jQuery系列之一 模拟alert,confirm(一)
2010/12/04 Javascript
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
2011/04/01 Javascript
JavaScript function 的 length 属性使用介绍
2014/09/15 Javascript
JavaScript中的null和undefined区别介绍
2015/01/01 Javascript
详解AngularJS控制器的使用
2016/03/09 Javascript
Select下拉框模糊查询功能实现代码
2016/07/22 Javascript
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法
2016/07/27 Javascript
详细谈谈javascript的对象
2016/07/31 Javascript
BootStrap Validator使用注意事项(必看篇)
2016/09/28 Javascript
JS动态计算移动端rem的解决方案
2016/10/14 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
2017/03/07 Javascript
vue2.x+webpack快速搭建前端项目框架详解
2017/11/30 Javascript
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
vue-router 前端路由之路由传值的方式详解
2019/04/30 Javascript
vue 集成jTopo 处理方法
2019/08/07 Javascript
JS中this的4种绑定规则详解
2020/02/04 Javascript
[00:32]2016完美“圣”典风云人物:Maybe宣传片
2016/12/05 DOTA
对pandas replace函数的使用方法小结
2018/05/18 Python
Python 微信之获取好友昵称并制作wordcloud的实例
2019/02/21 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
python中time库的实例使用方法
2019/10/31 Python
Python检测端口IP字符串是否合法
2020/06/05 Python
HTML5 离线应用之打造零请求、无流量网站的解决方法
2013/04/25 HTML / CSS
html5的websockets全双工通信详解学习示例
2014/02/26 HTML / CSS
html5实现移动端适配完美写法
2017/11/16 HTML / CSS
html5自定义video标签的海报与播放按钮功能
2019/12/04 HTML / CSS
新加坡航空官方网站:Singapore Airlines
2016/10/13 全球购物
瑞士灯具购物网站:Lampenwelt.ch
2018/07/08 全球购物
香港现代设计家具品牌:Ziinlife Furniture
2018/11/13 全球购物
新员工入职感言
2014/02/01 职场文书
煤矿安全生产标语
2014/06/06 职场文书
爱国主义主题班会
2015/08/14 职场文书