自定义选择符
jQueyr中多数自定义选择符都可以让我们基于某个标准选出特定的元素。自定义选择符以一个冒号(:)开头,例如:tr:odd 这就表示一个奇数行。
下面使用jQuery自定义选择符实现一个表格行交替显示的效果,还是一样,首先创建一个表格并且定义CSS样式,如下:
创建一个表格:
<table width=”218″ border=”0″>
<tr align=”center”>
<td width=”144″>哈姆雷特</td>
<td width=”58″>悲剧</td>
</tr>
<tr align=”center”>
<td>雷雨</td>
<td>悲剧</td>
</tr>
<tr align=”center”>
<td>屈原</td>
<td>历史</td>
</tr>
<tr align=”center”>
<td>罗密欧与朱丽叶</td>
<td>悲剧</td>
</tr>
<tr align=”center”>
<td>威尼斯商人</td>
<td>喜剧</td>
</tr>
<tr align=”center”>
<td>仲夏夜之梦</td>
<td>喜剧</td>
</tr>
<tr align=”center”>
<td>安史之乱</td>
<td>历史</td>
</tr>
</table>
定义CSS样式:
.odd {
/* 奇数行背景颜色 */
background-color:#ffc;
}
.even {
/* 偶数行背景颜色 */
background-color:#CCFFFF;
}
然后,使用jQuery为表格添加CSS样式,使用到了jQuery的自定义选择符 dd :even如下:
$(document).ready(function() {
$(‘tr:odd’).addClass(‘odd’);
$(‘tr:even’).addClass(‘even’);
});
添加CSS样式完成之后,显示效果如下:
注意: dd() :even()选择符都是使用Javas
现在介绍另一个自定义选择符:contains()选择符,该选择符用来查找一个页面元素对象中包含的文本内容。例如:现在我们需要强调显示一个单元格中的文本内容,就可以使用:contains()选择符。首先定义一个样式,如下:
.highlight {
font-weight:bold;
color:#FF0000;
}
下面使用jQuery添加CSS样式,将一个单元格中的内容强调显示,如下:
$(document).ready(function() {
$(‘tr:odd’).addClass(‘odd’);
$(‘tr:even’).addClass(‘even’);
$(‘td:contains(“屈原“)’).addClass(‘highlight’);
});
显示效果如下:
现在我们为表格添加标题行,并且为标题行添加样式,首先添加标题行之后显示的效果如下:
现在想要使标题行的背景颜色显示为黄色背景 字体为粗体显示,并且将强调显示的文本移动到分类列下。现在只需改动jQuery代码,在改动之前,我们需要定义一个标题行的样式,如下:
.table_heading {
background-color:#FFFF00;
font-weight:bold;
}
jQuey代码:
$(document).ready(function() {
$(‘th’).parent().addClass(‘table_heading’);
$(‘tr:not([th]):even’).addClass(‘even’);
$(‘tr:not([th]):odd’).addClass(‘odd’);
$(‘td:contains(“屈原“)’).next().addClass(‘highlight’);
});
在这里,‘tr:not([th]):even’表示为不包含th标签的tr添加even样式。 next()方法表示取出同辈中最接近的下一个元素。显示效果如下: