jquery查找父元素、子元素
2014-07-29来源:易贤网

使用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>

更多信息请查看IT技术专栏

推荐信息