jQueyr自定义选择符



自定义选择符

       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的自定义选择符 :o dd :even如下:

$(document).ready(function() {

              $(‘tr:odd’).addClass(‘odd’);

       $(‘tr:even’).addClass(‘even’);

});

添加CSS样式完成之后,显示效果如下:

 

自定义选择符 - CH -

注意: :o dd() :even()选择符都是使用Javascript本身从0开始的编号方式,所以显示的第一行实际上就是第0行,第0行是奇数,所以显示浅蓝色。

      

现在介绍另一个自定义选择符: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’);

});

显示效果如下:

 

            自定义选择符 - CH -

       现在我们为表格添加标题行,并且为标题行添加样式,首先添加标题行之后显示的效果如下:

            自定义选择符 - CH -   

现在想要使标题行的背景颜色显示为黄色背景 字体为粗体显示,并且将强调显示的文本移动到分类列下。现在只需改动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()方法表示取出同辈中最接近的下一个元素。显示效果如下:

       自定义选择符 - CH -