1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>层次选择器</title>
<script src="jquery-1.6.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
//------1.在给定的祖先元素下匹配所有后代元素
//(包含了子元素,以及子元素的元素,一直往下延伸)
var $divs = $("#main div");
for (var i = 0; i < $divs.length; i++) {
alert($divs.get(i).id);
}
//------2.在给定的父元素下匹配所有子元素,只包括直接子元素
//(不包含子元素的子元素)
var $divs = $("#main > div");
for (var i = 0; i < $divs.length; i++) {
alert($divs.get(i).id);
}
//-----3.prev + next $("lable + input ") : 匹配所有紧接在prev后的next元素
//注意:只能去到第一个,并且是紧挨着的,如果不是紧挨着div1后面的则取不到
//.....<1>.例子1
var $divBrother = $("#div1 + div"); //用#div1 ID选择器 ,只取到div2
alert($divBrother.get(0).id);
//.....<2>.例子2
var $divBrothers = $("div + div");
//用div 标签选择器,相邻的div都能取到 divSun1(和divSun相邻),div2(和div1相邻)
for (var i = 0; i < $divBrothers.length; i++) {
alert($divBrothers.get(i).id);
}
//-----4.prev ~ siblins
//$("form ~ input") : 匹配prev元素之后的所有siblings元素
//注意:在匹配之后的元素,不包含该元素在内,
//并且siblings匹配的是和prev同辈的元素,其后辈元素不被匹配。
var $divBrothers = $("#main ~ div");
for (var i = 0; i < $divBrothers.length; i++) { //得到main1,main2,main3
alert($divBrothers.get(i).id);
}
}
);
</script>
</head>
<body>
<div id="main">
<div id="div1" class="myDiv">我是div1
<div id="divSun">我是孙子div
<div id="divSunSun">我是孙子的孙子div</div>
</div>
<div id="divSun1">我是孙子div</div>
</div>
<div id="div2" class="myDiv">我是div2</div>
</div>
<div id="main1"></div>
<div id="main2"></div>
<input type="button" value="button" />
<div id="main3"></div>
</body>
</html>
|