jQuery选择器$()是jQuery的核心部分,他能够精确查找页面中的元素。
$()函数不需要像普通的JavaScript代码来遍历一组元素,它能够帮我们自动遍历,下面来看看jQuery常用的选择器。
- CSS选择器类型
- 标签形式:$('p'),这将获得页面中所有的p元素,可以在jQuery中这样写:$('p').addClass('.para'),这样就为整个页面的p元素都添加了样式类.para。
- CSS的ID选择器形式:$('#thisid'),将会获得id='thisid'的元素,同样可以通过addClass()方法为该元素添加样式规则。
- 类似CSS的类选择器形式:$('.content'),将会得到class="content"的所有元素(比如<div class="content"></div>)。
- XPath选择器类型
XML 路径语言(XPath)是一种在 XML 文档中指定不同元素或者它们的值的语言,它与CSS 在 HTML 文档中指定元素的方法相类似。jQuery 库支持支持一套基本的 XPath 选择器,如果我们想的话,我们可以让它与 CSS 选择器一起工作。使用 jQuery,不管文档的类型如何,我们都可使用 XPath 和 CSS 选择器。
3. 自定义选择器
对于各种的CSS和XPath选择器,jQuery加入了它自定义的选择器,大部分的自定义选择器能让我们在一个队列外选择一些元素。它的语法和CSS伪类语法类似(不知道Learning Jquery这本书为什么不把这种形式也归结到CSS类型选择器中),即选择器以冒号开头。例如我们想从一组匹配选择带有horziontal类的div中选择第二项,可以这样写:
$('div.horziontal:eq(1)'); //eq(1)是获得第二项
通过上述3种jQuery选择器,我们很容易就能找到页面中的元素,而且代码也不会长。这样就很利于我们操作页面元素,也节省了时间。
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4 <title></title>
5 <style type="text/css">
6 html, body
7 {
8 margin: 0;
9 padding: 0;
10 }
11 body
12 {
13 font-family: Arial, Verdana, sans-serif;
14 font-size: 12px;
15 color: #000;
16 background: #fff;
17 }
18 li
19 {
20 padding-top: 10px;
21 padding-left: 6px;
22 }
23 .horizontal
24 {
25 float: left;
26 list-style: none;
27 margin: 10px;
28 }
29 .sub-level
30 {
31 background: #ffc;
32 }
33 a
34 {
35 color: #00f;
36 }
37 a.mailto
38 {
39 color: #f00;
40 }
41 a.pdflink
42 {
43 color: #090;
44 }
45 a.mysite
46 {
47 text-decoration: none;
48 border-bottom: 1px dotted #00f;
49 }
50 .table-heading
51 {
52 background-color: #ff0;
53 }
54 th
55 {
56 text-align: left;
57 }
58 .odd
59 {
60 background-color: #ffc;
61 }
62 .even
63 {
64 background-color: #cef;
65 }
66 .highlight
67 {
68 color: #f00;
69 font-weight: bold;
70 }
71 td
72 {
73 color:#fff;
74 }
75 .table_header
76 {
77 background:red;
78 color:Blue;
79 font-size:14px;
80 }
81 .table_odd
82 {
83 background:#333;
84 }
85 .table_even
86 {
87 background:#666;
88
89 }
90 .high
91 {
92 color:Red;
93 font-weight:bold;
94 }
95 </style>
96
97 <script type="text/javascript" src="Scripts/jQuery.1.2.6.zh-cn-vsdoc.js"></script>
98
99 <script type="text/javascript">
100 $(document).ready(function() {
101 $('#selected-plays>li').addClass('horizontal'); //这里>号是jQuery的子选择符,#selected-plays>li 的意思就是id为selected-plays的直接子代(而二代以下不会算进来)
102 $('#selected-plays li:not(.horizontal)').addClass('sub-level'); //#selected-plays li给#selected-plays底下的所有li(包括二代,三代等)添加样式,但不包括li样式为horizontal的,在这里也就是为非直接子代添加样式,因为上面已经为直接子代添加了horizontal样式
103
104 });
105 $(document).ready(function(event) {
106 //^相当于正则表达式中的开始,$则相当于结尾
107 $('a[@href^="mailto:"]').addClass('mailto');//给a标签中包含href属性的,并且href以maito:开头的添加样式
108 $('a[@href$=".pdf"]').addClass('pdflink'); //给a标签中包含href属性的,并且href以.pdf结尾的添加样式
109 $('a[@href*="mysite"]').addClass('mysite'); //给a标签中包含href属性的,并且href中包含mysite的添加样式
110 });
111