zoukankan      html  css  js  c++  java
  • JQuery基础教程:选择元素(中)

    自定义选择符

         JQuery在各种CSS选择符的基础上还添加了独有的完全不同的自定义选择符,注意,只要可能,jQuery就会使用浏览器原生的DOM选择符引擎去查找元素。但在使用自定义选择符的时候,就无法使用速度最快的原生方法了。因此,在能够使用原生方法的情况下,就不要频繁地使用自定义选择符,以确保性能

        自定义选择符通常跟在一个CSS选择符后面,基于已经选择的元素集的位置来查找元素。自定义选择符的语法与CSS中的伪类选择符语法相同,即选择符以冒号(:)开头。例如,我们想要从带有horizontal类的<div>集合中选择第2项,那么应该使用下面的代码:$('div.horizontal:eq(1)') 

          注意,因为JavaScript数组采用从0开始的编号方式,所以eq(1)取得的是集合中的第2个元素。而CSS则是从1开始的,因此CSS选择符$('div:nth-child(1)')取得的是作为其父元素第1个子元素的所有div元素

        每隔一行为表格添加样式

      jQuery库中的两个十分有用的自定义选择符是:odd和:even,下面的代码展示的是分别为偶数行和奇数行添加背景颜色,不过要注意的是因为一次性取出来的是所有的表格的行,所以两个表格行的背景颜色显示会不一样。解决这个问题的一种方法是使用:nth-child()选择符。这个选择符相对于元素的父元素而非当前选择的所有元素来计算位置,它可以接受数值oddeven作为参数

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
        <style type="text/css">
            tr {
                background-color: #fff;
            }
    
            .alt {
                background-color:#b6ff00;
            } 
        </style>
        <script src="Scripts/jquery-1.8.2.js"></script>
        <script src="Scripts/jquery-1.8.2.min.js"></script> 
        <script>
            $(document).ready(function () {
                $('tr:even').addClass('alt'); //even匹配所有索引值为偶数的元素,从 0 开始计数
                //$('tr:odd').addClass('alt'); //odd匹配所有索引值为偶数的元素,从 0 开始计数
                //$('tr:nth-child(odd)').addClass('alt');  //nth-child匹配其父元素下的第N个子或奇偶元素
            });
        </script>
    </head>
    <body>
        <h2>Shakespeare's Plays</h2>
        <table>
            <tr>
                <td>As You Like It</td>
                <td>Comedy</td>
                <td></td>
            </tr>
            <tr>
                <td>All's Well that Ends Well</td>
                <td>Comedy</td>
                <td>1601</td>
            </tr>
            <tr>
                <td>Hamlet</td>
                <td>Tragedy</td>
                <td>1604</td>
            </tr>
            <tr>
                <td>Macbeth</td>
                <td>Tragedy</td>
                <td>1606</td>
            </tr>
            <tr>
                <td>Romeo and Juliet</td>
                <td>Tragedy</td>
                <td>1595</td>
            </tr>
            <tr>
                <td>Henry IV, Part I</td>
                <td>History</td>
                <td>1596</td>
            </tr>
            <tr>
                <td>Henry V</td>
                <td>History</td>
                <td>1599</td>
            </tr>
        </table>
        <h2>Shakespeare's Sonnets</h2>
        <table>
            <tr>
                <td>The Fair Youth</td>
                <td>1–126</td>
            </tr>
            <tr>
                <td>The Dark Lady</td>
                <td>127–152</td>
            </tr>
            <tr>
                <td>The Rival Poet</td>
                <td>78–86</td>
            </tr>
        </table>
    </body>
    </html>
    代码

     

    基于上下文内容选择元素

       假设出于某种原因,我们希望突出显示提到任何一种Henry游戏的所有表格单元。为此,我们所要做的就是在样式表中添加一个声明了粗体和斜体文本的类(.highlight{fontweight:bold; font-style:italic; }),然后向jQuery代码中添加一行代码,其中使用的是:contains()选择符

    $('td:contains(Henry)').addClass('highlight'); 

    基于表单的选择符

         自定义选择符并不局限于基于元素的位置选择元素。在操作表单时,jQuery的自定义选择符以及后来补充的CSS3选择符同样可以简化选择元素的任务

    组合使用表单选择符可以更有针对性。例如,使用$('input[type= "radio"]:checked')可以选择所有选中的单选按钮,使用$('input[type= "password"],input[type="text"]:disabled')则可以选择所有密码输入字段和禁用的文本输入字段。可见,即便是使用自定义选择符,也可以按照基本的CSS语法来定义匹配的元素列表

  • 相关阅读:
    上海电信 华为HG8240R 光猫 破解
    RedSn0w 0.9.10b5 越狱iphone 4 ios 5.0.1 Cydia闪退解决
    用IIS 7.5 Express代替IIS和开发工具vs自带的ASP.NET Development Server
    远程桌面连接问题
    Enterprise Library 5.0 Hands On Lab(1):数据访问程序块(一)
    [Havok] Havok Physics物理引擎的学习入门
    [设计模式] 深入浅出单实例Singleton设计模式(Java版)
    [C#] MD5 加密的具体流程
    [轻音乐] 理查德·克莱德曼专辑[8CD]
    [SEO] [DeDe]优化SEO
  • 原文地址:https://www.cnblogs.com/SamFlynn/p/4313821.html
Copyright © 2011-2022 走看看