jQuery选择器$()是jQuery的核心部分,他能够精确查找页面中的元素。
$()函数不需要像普通的JavaScript代码来遍历一组元素,它能够帮我们自动遍历,下面来看看jQuery常用的选择器。
3. 自定义选择器
对于各种的CSS和XPath选择器,jQuery加入了它自定义的选择器,大部分的自定义选择器能让我们在一个队列外选择一些元素。它的语法和CSS伪类语法类似(不知道Learning Jquery这本书为什么不把这种形式也归结到CSS类型选择器中),即选择器以冒号开头。例如我们想从一组匹配选择带有horziontal类的div中选择第二项,可以这样写:
$('div.horziontal:eq(1)'); //eq(1)是获得第二项
通过上述3种jQuery选择器,我们很容易就能找到页面中的元素,而且代码也不会长。这样就很利于我们操作页面元素,也节省了时间。
<!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>
<title></title>
<style type="text/css">
html, body
{
margin: 0;
padding: 0;
}
body
{
font-family: Arial, Verdana, sans-serif;
font-size: 12px;
color: #000;
background: #fff;
}
li
{
padding-top: 10px;
padding-left: 6px;
}
.horizontal
{
float: left;
list-style: none;
margin: 10px;
}
.sub-level
{
background: #ffc;
}
a
{
color: #00f;
}
a.mailto
{
color: #f00;
}
a.pdflink
{
color: #090;
}
a.mysite
{
text-decoration: none;
border-bottom: 1px dotted #00f;
}
.table-heading
{
background-color: #ff0;
}
th
{
text-align: left;
}
.odd
{
background-color: #ffc;
}
.even
{
background-color: #cef;
}
.highlight
{
color: #f00;
font-weight: bold;
}
td
{
color:#fff;
}
.table_header
{
background:red;
color:Blue;
font-size:14px;
}
.table_odd
{
background:#333;
}
.table_even
{
background:#666;
}
.high
{
color:Red;
font-weight:bold;
}
</style>
<script type="text/javascript" src="Scripts/jQuery.1.2.6.zh-cn-vsdoc.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#selected-plays>li').addClass('horizontal'); //这里>号是jQuery的子选择符,#selected-plays>li 的意思就是id为selected-plays的直接子代(而二代以下不会算进来)
$('#selected-plays li:not(.horizontal)').addClass('sub-level'); //#selected-plays li给#selected-plays底下的所有li(包括二代,三代等)添加样式,但不包括li样式为horizontal的,在这里也就是为非直接子代添加样式,因为上面已经为直接子代添加了horizontal样式
});
$(document).ready(function(event) {
//^相当于正则表达式中的开始,$则相当于结尾
$('a[@href^="mailto:"]').addClass('mailto');//给a标签中包含href属性的,并且href以maito:开头的添加样式
$('a[@href$=".pdf"]').addClass('pdflink'); //给a标签中包含href属性的,并且href以.pdf结尾的添加样式
$('a[@href*="mysite"]').addClass('mysite'); //给a标签中包含href属性的,并且href中包含mysite的添加样式
});
$(document).ready(function() {
$('th').parent().addClass('table-heading');//包含th的tr添加样式
$('tr:not([th]):odd').addClass('table_odd');//冒号相当于CSS中的伪类给不包含th的tr的偶数行添加样式
$('tr:not([th]):even').addClass('table_even'); //给不包含th的tr的奇数行添加样式
$('td:contains("Henry")').siblings().addClass('high'); //给td中包含Henry字符的兄弟元素添加样式
});
</script>
</head>
<body>
<ul id="selected-plays">
<li>Comedies
<ul>
<li><a href="http://www.mysite.com/asyoulikeit/">As You Like It</a></li>
<li>All's Well That Ends Well</li>
<li>A Midsummer Night's Dream</li>
<li>Twelfth Night</li>
</ul>
</li>
<li>Tragedies
<ul>
<li><a href="hamlet.pdf">Hamlet</a></li>
<li>Macbeth</li>
<li>Romeo and Juliet</li>
</ul>
</li>
<li>Histories
<ul>
<li>Henry IV (<a href="mailto:henryiv@king.co.uk">email</a>)
<ul>
<li>Part I</li>
<li>Part II</li>
</ul>
<li><a href="http://www.shakespeare.co.uk/henryv.htm">Henry V</a></li>
<li>Richard II</li>
</ul>
</li>
</ul>
<table>
<tr>
<th>
Like
</th>
<th>
Name
</th>
</tr>
<tr>
<td>
All's Well that Ends Well
</td>
<td>
Comedy
</td>
</tr>
<tr>
<td>
Hamlet
</td>
<td>
Tragedy
</td>
</tr>
<tr>
<td>
Macbeth
</td>
<td>
Tragedy
</td>
</tr>
<tr>
<td>
Romeo and Juliet
</td>
<td>
Tragedy
</td>
</tr>
<tr>
<td>
Henry IV, Part I
</td>
<td>
History
</td>
</tr>
<tr>
<td>
Henry V
</td>
<td>
History
</td>
</tr>
</table>
</body>
</html>
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛