• jQuery选择器 之详述


     jQuery选择器

    单词小计

      Pervious 上一页sibling  同级first  第一last  最后not  

      Even  偶数    odd  奇数 header  页眉

    一.jQuery选择器概述

    选择器是jQuery的根基,在jQuery中,对事件处理、遍历DOM和Ajax操作都依赖于选择器。因此,如果能熟练的使用选择器,不仅能简化代码,而且可以达到事半功倍的效果。jQuery选择器完全继承了CSS的风格。利用jQuery选择器,可以非常便捷的找出特定的DOM元素,然后为它们添加相应的行为,而无需担心浏览器是否支持这一选择器。

    jQuery选择器与CSS选择器的不同之处就在于,jQuery选择器获取元素后,为该元素添加的是行为,是页面交互变得更加丰富多彩。

     

    二.通过CSS选择器获取元素

    jQuery支持大多数CSS选择器,其中最常用的有CSS的基本选择器,层次选择器和属性选择器,在jQuery中,与他们对应的分别是jQuery基本选择器,层次选择器和属性选择器,他们的构成规则与CSS选择器完全相同。

    一.基本选择器

    基本选择器主要包括标签选择器、类选择器、ID选择器、并集选择器、交集选择器和全局选择器。
    1. id选择器(指定id元素)
    将id="one"的元素背景色设置为黑色。(id选择器返单个元素)

    $(document).ready(function () {
            $('#one').css('background', '#000');
     });

    2. class选择器(遍历css类元素)
    将class="cube"的元素背景色设为黑色

    $(document).ready(function () {
            $('.cube').css('background', '#000');
    });

    3. 标签选择器(遍历html元素)
    将p元素的文字大小设置为12px

    $(document).ready(function () {
            $('p').css('font-size', '12px');
    });

    4. 全局(* 选择器(遍历所有元素)

    $(document).ready(function () {
            // 遍历所有元素,将字体颜色设置为红色
            $('*').css('color', '#FF0000');
    });

    5. 并选择器

    $(document).ready(function () {
            // 将p元素和div元素的颜色设为红色
            $('p, div').css('color', '#FF0000');
    
    }

    6交集选择器

    $(document).ready(function () {
    
          // 将所有拥有class为tittle的h2元素颜色设为红色              $(‘h2.tittle’).css('color', '#FF0000')
    }

    二、 层次选择器

    jQuery中有4种层次选择器,他们分别是后代选择器,子选择器,相邻元素选择器和同辈元素选择器,其中最常用的是后代选择器和子选择器,他们和css中的后代选择器的语法及选取范围均相同。

     

    子选择器的范围要比后代选择器的选取范围小


    1.子选择器 parent > child(直系子元素)

    $(document).ready(function () {
            // 选取div下的第一代span元素,将字体颜色设为红色
            $('div > span').css('color', '#FF0000');
        });

    下面的代码,只有第一个span会变色,第二个span不属于div的一代子元素,颜色保持不变。

    <div>
            <span>123</span>
            <p>
                <span>456</span>
            </p>
    </div>

    2.相邻元素选择器 prev + next(下一个兄弟元素,等同于next()方法)

    $(document).ready(function () {
        // 选取class为item的下一个div兄弟元素
        $('.item + div').css('color', '#FF0000');
        // 等价代码
        //$('.item').next('div').css('color', '#FF0000');
    });

    下面的代码,只有123和789会变色而456不是相邻,所以不会变色

    <p class="item"></p>
    <div>123</div>
    <div>456</div>
    <span class="item"></span>
    <div>789</div>

    3. 同辈元素选择器prev ~ siblings(prev元素的所有兄弟元素,等同于nextAll()方法)

    $(document).ready(function () {
        // 选取class为inside之后的所有div兄弟元素
        $('.inside ~ div').css('color', '#FF0000');
        // 等价代码
        //$('.inside').nextAll('div').css('color', '#FF0000');
    });

    下面的代码,G2和G4会变色

    <div class="inside">G1</div>
    <div>G2</div>
    <span>G3</span>
    <div>G4</div>

    4. 后代选择器

    $(function()){
    
    // 选取id为myid下的所有<span>元素
    
    $(‘#myid span’).css('color', '#FF0000');
    
    };

    下面的代码000和222都会变色

    <div id="myid">
    
       <h1>111</h1>
    
       <p><span>222</span></p>
    
       <span>000</span>
    
    </div>

    三.属性选择器


    1. [attribute]用法 
    定义:匹配包含给定属性的元素,判断拥有某个属性的元素 

    $("div[id]").addClass("highlight"); 
    
    //查找所有含有ID属性的div元素

    2. [attribute=value]用法 
    定义:匹配给定的属性是某个特定值的元素,判断某个元素的属性值相等 

    $("input[name='basketball']").attr("checked",true); 
    
      //name属性值为basketball的input元素选中 

    3. [attribute!=value]用法 
    定义:匹配给定的属性是不包含某个特定值的元素,判断某个元素的属性值不等 

    $("input[name!='basketball']").attr("checked",true); 
    
      //name属性值不为basketball的input元素选中 
    
      //此选择器等价于:not([attr=value])

      要匹配含有特定属性但不等于特定值的元素,请使用

    [attr]:not([attr=value])
    
      $("input:not(input[name='basketball'])").attr("checked",true);

    4. [attribute^=value]用法 
    定义:匹配给定的属性是以某些值开始的元素,判断某个属性值以value为开始值 

    $("input[name^='foot']").attr("checked",true);  

    //查找所有 name 以 'foot' 开始的 input 元素

    5. [attribute$=value]用法 

    定义:匹配给定的属性是以某些值结尾的元素,判断某个属性值以value为结尾值 

    $("input[name$='ball']").attr("checked",true); 

    //查找所有 name 以 'ball' 结尾的 input 元素

    6. [attribute*=value]用法 
    定义:匹配给定的属性是以包含某些值的元素,判断某个属性值包含value 

    $("input[name*='sket']").attr("checked",true); 

     //查找所有 name 包含 'sket' 的 input 元素

    7. [selector1][selector2][selectorN]用法 
    定义:复合属性选择器,需要同时满足多个条件时使用,多个属性值去交集 

    $("input[id][name$='ball']").attr("checked",true);  

    //找到所有含有 id属性,并且它的 name属性是以 ball结尾的input 元素

    三.通过条件过滤选取元素

    过滤选择器主要通过特定的过滤规则来筛选出所需的DOM元素,过滤规则与CSS中的伪类语法相同,即选择器都以一个冒号(:)开头,冒号前是进行过滤的元素。

    按照不同的过滤条件,过滤选择器可以分为基本过滤,内容过滤,可见性过滤,属性过滤,子元素过滤和表单对象属性过滤选择器。

    一.基本过滤选择器

    1 :first和:last(取第一个元素或最后一个元素)

    $(document).ready(function () {
                $('span:first').css('color', '#FF0000');
                $('span:last').css('color', '#FF0000');
            });下面的代码,G1(first元素)和G3(last元素)会变色

    <span>G1</span>
    <span>G2</span>
    <span>G3</span>


    2 :not(取非元素)

    $(document).ready(function () {
                $('div:not(.wrap)').css('color', '#FF0000');
            });下面的代码,G1会变色

    <div>G1</div>
    <div class="wrap">G2</div>
    但是,请注意下面的代码:

    <div>
        G1
        <div class="wrap">G2</div>
    </div>
    当G1所在div和G2所在div是父子关系时,G1和G2都会变色。

    3 :even和:odd(取偶数索引或奇数索引元素,索引从0开始,even表示偶数,odd表示奇数)

    $(document).ready(function () {
                $('li:even').css('background', '#EEE'); // 偶数行颜色
                $('li:odd').css('background', '#DADADA'); // 奇数行颜色
            });A、C行颜色#EEE(第一行的索引为0),B、D行颜色#DADADA

     <ul>

            <li>A</li>

            <li>B</li>

            <li>C</li>

            <li>D</li>

        </ul>
    4 :eq(x)                   (取指定索引的元素)                       

    $(document).ready(function () {
                $('li:eq(2)').css('background', '#FF0000');
            });更改第三行的背景色,在上面的代码中C的背景会变色。


    5 :gt(x)和:lt(x)            (取大于x索引或小于x索引的元素)

    $(document).ready(function () {
                $('ul li:gt(2)').css('color', '#FF0000');
                $('ul li:lt(2)').css('color', '#0000FF');
            });L4和L5会是红色,L1和L2会是蓝色,L3是默认颜色
    <ul>
        <li>L1</li>
        <li>L2</li>
        <li>L3</li>
        <li>L4</li>
        <li>L5</li>
    </ul>


    6 :header(取H1~H6标题元素)

    $(document).ready(function () {
                $(':header').css('background', '#EFEFEF');
            });下面的代码,H1~H6的背景色都会变

     

    <h1>H1</h1>
    <h2>H2</h2>
    <h3>H3</h3>
    <h4>H4</h4>
    <h5>H5</h5>
    <h6>H6</h6>

    7. :focus  (当前获取焦点的元素)

    $(document).ready(function () {
                $(':focus').css('background', '#000');
            });改变当前获取焦点的元素的背景颜色

    二.可见性过滤选择器

    jQuery中,通过元素显示状态选取元素的选择器称为可见性过滤选择器

     

    1 :hidden(取隐藏(不可见)的元素)

     

    jQuery1.3.2之后的:hidden选择器仅匹配display:none<input type="hidden" />的元素,而不匹配visibility: hiddenopacity:0的元素。这也意味着hidden只匹配那些“隐藏的”并且不占空间的元素,像visibility:hiddenopactity:0的元素占据了空间,会被排除在外。

       <style type="text/css">

            div {

                margin: 10px;

                 200px;

                height: 40px;

                border: 1px solid #FF0000;

                display: block;

            }

     

            .hid-1 {

                display: none;

            }

     

            .hid-2 {

                visibility: hidden;

            }

        </style>

        <script src="js/jquery-1.12.3.min.js"></script>

        <script type="text/javascript">

            $(document).ready(function () {

                $('div:hidden').show(500);

                alert($('input:hidden').val());

            });

        </script>

    </head>

    <body>

        <div class="hid-1">display: none</div>

        <div class="hid-2">visibility: hidden</div>

        <input type="hidden" value="hello" />

    </body>

    先弹出"hello"对话框,然后hid-1会显示,hid-2仍然是不可见的。

    2 :visible(取可见的元素)

    <script type="text/javascript">

        $(document).ready(function() {

            $('div:visible').css('background', '#EEADBB');

        });

    </script>

    <div class="hid-1">display: none</div>

    <div class="hid-2">visibility: hidden</div>

    <input type="hidden" value="hello"/>

    <div>

    我有背景色

    </div>

    代码中,最后一个div会有背景色

    四.jQuery选择器注意事项

    一.选择器中含有特殊符号的注意事项

    W3C规范中,规定属性值中不能含有某些特殊字符,但在实际开发中,可能会遇到表达式中有“#”和“.”等特殊字符情况,如果按照普通方式处理就会出错。课用转义符转义解决。

        <div id="id#a">aa</div>

    <div id="id[2]">cc</div>

    按照普通方式获取,如

    $(#id#a);

    $(#id[2]);

    不能正确获取元素,正确写法如下

    $(#id\#a);

    $(#id\[2\]);

    二.选择器中含有空格的注意事项

    选择器中空格是不容忽视的,多一个空格或少一个空格,可能会得到截然不同的结果。

     

     

     

     

     jQuery选择器

    单词小计

      Pervious 上一页sibling  同级first  第一last  最后not  

      Even  偶数    odd  奇数 header  页眉

    一.jQuery选择器概述

    选择器是jQuery的根基,在jQuery中,对事件处理、遍历DOM和Ajax操作都依赖于选择器。因此,如果能熟练的使用选择器,不仅能简化代码,而且可以达到事半功倍的效果。jQuery选择器完全继承了CSS的风格。利用jQuery选择器,可以非常便捷的找出特定的DOM元素,然后为它们添加相应的行为,而无需担心浏览器是否支持这一选择器。

    jQuery选择器与CSS选择器的不同之处就在于,jQuery选择器获取元素后,为该元素添加的是行为,是页面交互变得更加丰富多彩。

    二.通过CSS选择器获取元素

    jQuery支持大多数CSS选择器,其中最常用的有CSS的基本选择器,层次选择器和属性选择器,在jQuery中,与他们对应的分别是jQuery基本选择器,层次选择器和属性选择器,他们的构成规则与CSS选择器完全相同。

    一.基本选择器

    基本选择器主要包括标签选择器、类选择器、ID选择器、并集选择器、交集选择器和全局选择器。
    1. id选择器(指定id元素)
    将id="one"的元素背景色设置为黑色。(id选择器返单个元素)

    $(document).ready(function () {
            $('#one').css('background', '#000');
     });


    2. class选择器(遍历css类元素)
    将class="cube"的元素背景色设为黑色
    $(document).ready(function () {
            $('.cube').css('background', '#000');
    });


    3. 标签选择器(遍历html元素)
    将p元素的文字大小设置为12px
    $(document).ready(function () {
            $('p').css('font-size', '12px');
    });


    4. 全局(* 选择器(遍历所有元素)
    $(document).ready(function () {
            // 遍历所有元素,将字体颜色设置为红色
            $('*').css('color', '#FF0000');
    });


    5. 并选择器
    $(document).ready(function () {
            // 将p元素和div元素的颜色设为红色
            $('p, div').css('color', '#FF0000');

    }
    6交集选择器
    $(document).ready(function () {

          // 将所有拥有class为tittle的h2元素颜色设为红色        $(h2.tittle).css('color', '#FF0000')
    }

    二、 层次选择器

    jQuery中有4种层次选择器,他们分别是后代选择器,子选择器,相邻元素选择器和同辈元素选择器,其中最常用的是后代选择器和子选择器,他们和css中的后代选择器的语法及选取范围均相同。

     

    子选择器的范围要比后代选择器的选取范围小


    1.子选择器 parent > child(直系子元素)

    $(document).ready(function () {
            // 选取div下的第一代span元素,将字体颜色设为红色
            $('div > span').css('color', '#FF0000');
        });下面的代码,只有第一个span会变色,第二个span不属于div的一代子元素,颜色保持不变。

    <div>
            <span>123</span>
            <p>
                <span>456</span>
            </p>
    </div>


    2.相邻元素选择器 prev + next(下一个兄弟元素,等同于next()方法)

    $(document).ready(function () {
        // 选取class为item的下一个div兄弟元素
        $('.item + div').css('color', '#FF0000');
        // 等价代码
        //$('.item').next('div').css('color', '#FF0000');
    });下面的代码,只有123和789会变色而456不是相邻,所以不会变色
    <p class="item"></p>
    <div>123</div>
    <div>456</div>
    <span class="item"></span>
    <div>789</div>


    3. 同辈元素选择器prev ~ siblings(prev元素的所有兄弟元素,等同于nextAll()方法)

    $(document).ready(function () {
        // 选取class为inside之后的所有div兄弟元素
        $('.inside ~ div').css('color', '#FF0000');
        // 等价代码
        //$('.inside').nextAll('div').css('color', '#FF0000');
    });下面的代码,G2和G4会变色

    <div class="inside">G1</div>
    <div>G2</div>
    <span>G3</span>
    <div>G4</div>

    4. 后代选择器

    $(function()){

    // 选取idmyid下的所有<span>元素

    $(#myid span).css('color', '#FF0000');

    };下面的代码000和222都会变色

    <div id="myid">

       <h1>111</h1>

       <p><span>222</span></p>

       <span>000</span>

    </div>

    三.属性选择器


    1. [attribute]用法 
    定义:匹配包含给定属性的元素,判断拥有某个属性的元素 
    $("div[id]").addClass("highlight"); 

    //查找所有含有ID属性的div元素

    2. [attribute=value]用法 
    定义:匹配给定的属性是某个特定值的元素,判断某个元素的属性值相等 

    $("input[name='basketball']").attr("checked",true); 

      //name属性值为basketball的input元素选中 

    3. [attribute!=value]用法 
    定义:匹配给定的属性是不包含某个特定值的元素,判断某个元素的属性值不等 

     

    $("input[name!='basketball']").attr("checked",true); 

      //name属性值不为basketball的input元素选中 

      //此选择器等价于:not([attr=value])

      要匹配含有特定属性但不等于特定值的元素,请使用[attr]:not([attr=value])

      $("input:not(input[name='basketball'])").attr("checked",true);

    4. [attribute^=value]用法 
    定义:匹配给定的属性是以某些值开始的元素,判断某个属性值以value为开始值 

     

    $("input[name^='foot']").attr("checked",true);  

    //查找所有 name 以 'foot' 开始的 input 元素

    5. [attribute$=value]用法 

    定义:匹配给定的属性是以某些值结尾的元素,判断某个属性值以value为结尾值 

    $("input[name$='ball']").attr("checked",true); 

    //查找所有 name 以 'ball' 结尾的 input 元素

    6. [attribute*=value]用法 
    定义:匹配给定的属性是以包含某些值的元素,判断某个属性值包含value 

    $("input[name*='sket']").attr("checked",true); 

     //查找所有 name 包含 'sket' 的 input 元素

    7. [selector1][selector2][selectorN]用法 
    定义:复合属性选择器,需要同时满足多个条件时使用,多个属性值去交集 

    $("input[id][name$='ball']").attr("checked",true);  

    //找到所有含有 id属性,并且它的 name属性是以 ball结尾的input 元素

    三.通过条件过滤选取元素

    过滤选择器主要通过特定的过滤规则来筛选出所需的DOM元素,过滤规则与CSS中的伪类语法相同,即选择器都以一个冒号(:)开头,冒号前是进行过滤的元素。

    按照不同的过滤条件,过滤选择器可以分为基本过滤,内容过滤,可见性过滤,属性过滤,子元素过滤和表单对象属性过滤选择器。

    一.基本过滤选择器

    1 :first和:last(取第一个元素或最后一个元素)

    $(document).ready(function () {
                $('span:first').css('color', '#FF0000');
                $('span:last').css('color', '#FF0000');
            });下面的代码,G1(first元素)和G3(last元素)会变色

    <span>G1</span>
    <span>G2</span>
    <span>G3</span>


    2 :not(取非元素)

    $(document).ready(function () {
                $('div:not(.wrap)').css('color', '#FF0000');
            });下面的代码,G1会变色

    <div>G1</div>
    <div class="wrap">G2</div>
    但是,请注意下面的代码:

    <div>
        G1
        <div class="wrap">G2</div>
    </div>
    当G1所在div和G2所在div是父子关系时,G1和G2都会变色。

    3 :even和:odd(取偶数索引或奇数索引元素,索引从0开始,even表示偶数,odd表示奇数)

    $(document).ready(function () {
                $('li:even').css('background', '#EEE'); // 偶数行颜色
                $('li:odd').css('background', '#DADADA'); // 奇数行颜色
            });A、C行颜色#EEE(第一行的索引为0),B、D行颜色#DADADA

     <ul>

            <li>A</li>

            <li>B</li>

            <li>C</li>

            <li>D</li>

        </ul>
    4 :eq(x)                   (取指定索引的元素)                       

    $(document).ready(function () {
                $('li:eq(2)').css('background', '#FF0000');
            });更改第三行的背景色,在上面的代码中C的背景会变色。


    5 :gt(x)和:lt(x)            (取大于x索引或小于x索引的元素)

    $(document).ready(function () {
                $('ul li:gt(2)').css('color', '#FF0000');
                $('ul li:lt(2)').css('color', '#0000FF');
            });L4和L5会是红色,L1和L2会是蓝色,L3是默认颜色
    <ul>
        <li>L1</li>
        <li>L2</li>
        <li>L3</li>
        <li>L4</li>
        <li>L5</li>
    </ul>


    6 :header(取H1~H6标题元素)

    $(document).ready(function () {
                $(':header').css('background', '#EFEFEF');
            });下面的代码,H1~H6的背景色都会变

     

    <h1>H1</h1>
    <h2>H2</h2>
    <h3>H3</h3>
    <h4>H4</h4>
    <h5>H5</h5>
    <h6>H6</h6>

    7. :focus  (当前获取焦点的元素)

    $(document).ready(function () {
                $(':focus').css('background', '#000');
            });改变当前获取焦点的元素的背景颜色

    二.可见性过滤选择器

    jQuery中,通过元素显示状态选取元素的选择器称为可见性过滤选择器

     

    1 :hidden(取隐藏(不可见)的元素)

     

    jQuery1.3.2之后的:hidden选择器仅匹配display:none<input type="hidden" />的元素,而不匹配visibility: hiddenopacity:0的元素。这也意味着hidden只匹配那些“隐藏的”并且不占空间的元素,像visibility:hiddenopactity:0的元素占据了空间,会被排除在外。

       <style type="text/css">

            div {

                margin: 10px;

                 200px;

                height: 40px;

                border: 1px solid #FF0000;

                display: block;

            }

     

            .hid-1 {

                display: none;

            }

     

            .hid-2 {

                visibility: hidden;

            }

        </style>

        <script src="js/jquery-1.12.3.min.js"></script>

        <script type="text/javascript">

            $(document).ready(function () {

                $('div:hidden').show(500);

                alert($('input:hidden').val());

            });

        </script>

    </head>

    <body>

        <div class="hid-1">display: none</div>

        <div class="hid-2">visibility: hidden</div>

        <input type="hidden" value="hello" />

    </body>

    先弹出"hello"对话框,然后hid-1会显示,hid-2仍然是不可见的。

    2 :visible(取可见的元素)

    <script type="text/javascript">

        $(document).ready(function() {

            $('div:visible').css('background', '#EEADBB');

        });

    </script>

    <div class="hid-1">display: none</div>

    <div class="hid-2">visibility: hidden</div>

    <input type="hidden" value="hello"/>

    <div>

    我有背景色

    </div>

    代码中,最后一个div会有背景色

    四.jQuery选择器注意事项

    一.选择器中含有特殊符号的注意事项

    W3C规范中,规定属性值中不能含有某些特殊字符,但在实际开发中,可能会遇到表达式中有“#”和“.”等特殊字符情况,如果按照普通方式处理就会出错。课用转义符转义解决。

        <div id="id#a">aa</div>

    <div id="id[2]">cc</div>

    按照普通方式获取,如

    $(#id#a);

    $(#id[2]);

    不能正确获取元素,正确写法如下

    $(#id\#a);

    $(#id\[2\]);

    二.选择器中含有空格的注意事项

    选择器中空格是不容忽视的,多一个空格或少一个空格,可能会得到截然不同的结果。

     

     

     

     

  • 相关阅读:
    css3 animate 和关键帧 @-webkit-keyframes
    CSS3 线性渐变(linear-gradient)
    css3 transition平滑过渡
    css3 变形设计涂鸦墙
    css3 图片翻转效果
    溢出隐藏
    顺序表的实现
    数论学习
    从BF算法到kmp算法详解
    王红梅、胡明、王涛编著的《数据结构c++》(第二版)模板类链表超详细代码
  • 原文地址:https://www.cnblogs.com/bkzl/p/5514603.html
Copyright © 2020-2023  润新知