zoukankan      html  css  js  c++  java
  • jQuery学习之旅 Item2 选择器【二】

    这里接着上一个Item1 把jQuery的选择器讲完。主要有:属性过滤器和子元素过滤器

    点击”名称”会跳转到此方法的jQuery官方说明文档.

    5. 属性过滤器 Attribute Filters

    名称 说明 举例
    [attribute] 匹配包含给定属性的元素 查找所有含有 id 属性的 div 元素:
    $(“div[id]”)
    [attribute=value] 匹配给定的属性是某个特定值的元素 查找所有 name 属性是 newsletter 的 input 元素:
    $(“input[name=’newsletter’]”).attr(“checked”, true);
    [attribute!=value] 匹配给定的属性是不包含某个特定值的元素 查找所有 name 属性不是 newsletter 的 input 元素:
    $(“input[name!=’newsletter’]”).attr(“checked”, true);
    [attribute^=value] 匹配给定的属性是以某些值开始的元素 $(“input[name^=’news’]”)
    [attribute$=value] 匹配给定的属性是以某些值结尾的元素 查找所有 name 以 ‘letter’ 结尾的 input 元素:
    $ (“input[name =’letter’]”)
    [attribute*=value]

    匹配给定的属性是以包含某些值的元素

    查找所有 name 包含 ‘man’ 的 input 元素:
    $ (“input[name * =’man’]”)

    [attributeFilter1][attributeFilter2][attributeFilterN] 复合属性选择器,需要同时满足多个条件时使用。 找到所有含有 id 属性,并且它的 name 属性是以 man 结尾的:
    $ (“input[id][name =’man’]”)

    <input  type=”text”  name=”username”  value=”zhangsan” />
    • $ (“[name]”) —— 找到有name属性的元素
    • $(“[value=tom]”) —— 找到有value属性的元素,并且value的值等于tom
    • $(“[value^=to]”) —— 找到有value属性的元素,并且value的值是以to开始
    • $(“[value$=ab]”) —— 找到有value属性的元素,并且value的值是以ab结尾
    • $(“[value*=ab]”) —— 找到有value属性的元素,并且value的值里边包含ab信息
    • $(“[value!=ab]”)

      ①找到有value属性的元素,并且value的值不等于ab
      ②或者是没有value属性元素

    <input value=”123”><input  value=”ab”>
    • $([name][class=^a][value!=123] ) —— 符合选择器,多个条件同时满足(并且,交集)
    <script>
        function f1(){
            //$("[class]").css('color','red');//有class属性
    
            //$("[id=hello]").css("color","blue");//id=hello的元素
    
            //$("[class^=app]").css("color",'blue');//class内容以app开始
    
            //$("[class$=e]").css("color","red"); //class内容以e结尾
    
            //$("[class*=p]").css("color","red"); //class内容包含p
    
            //class内容不为app123 或 没有class属性的
            //$("[class!=app123]").css("color","blue");
    
            //有id属性和class属性并且class不等于app123
            //$("[id][class!=app123][class]").css("color",'blue');
    
            //获得input元素,并且有class属性,内容以app开始
            $("[class=app123]input").css("color",'blue');
            //$("input:eq(2)").css("color",'blue');
        }
    
    </script>
    
    <body>
        <div class="apple">apple</div>
        <div class="app123">banana</div>
    
        <input type="text" value="tom" id="hello" class="peare"><br />
        <input type="text" value="jack" class="app123"><br />
        <input type="text" value="linken" class="apple"><br />
    
        <input type="button" value="触发" onclick="f1()">
        <p>I am bread</p>
    </body>

    6. 子元素过滤器 Child Filters

    名称 说明 举例
    :nth-child(index/even/odd/equation)

    匹配其父元素下的第N个子或奇偶元素

    ‘:eq(index)’ 只匹配一个元素,而这个将为每一个父元素匹配子元素。:nth-child从1开始的,而:eq()是从0算起的!

    可以使用:
    nth-child(even)
    :nth-child(odd)
    :nth-child(3n)
    :nth-child(2)
    :nth-child(3n+1)
    :nth-child(3n+2)

    在每个 ul 查找第 2 个li:
    $(“ul li:nth-child(2)”)
    :first-child

    匹配第一个子元素

    ‘:first’ 只匹配一个元素,而此选择符将为每个父元素匹配一个子元素

    在每个 ul 中查找第一个 li:
    $(“ul li:first-child”)
    :last-child

    匹配最后一个子元素

    ‘:last’只匹配一个元素,而此选择符将为每个父元素匹配一个子元素

    在每个 ul 中查找最后一个 li:
    $(“ul li:last-child”)
    :only-child

    如果某个元素是父元素中唯一的子元素,那将会被匹配

    如果父元素中含有其他元素,那将不会被匹配。

    在 ul 中查找是唯一子元素的 li:
    $(“ul li:only-child”)

    1 :nth-child(index/even/odd)
    匹配其父元素下的第N个子或奇偶元素
    ‘:eq(index)’ 只匹配一个元素,
    而这个将为每一个父元素匹配子元素。
    :nth-child从1开始的,而:eq()是从0算起的!

    2 :first-child
    匹配其父元素下的第一个子元素

    3 :last-child
    匹配其父元素下的最后一个子元素

    4 :only-child
    如果某个元素是父元素中唯一的子元素,那将会被匹配

    容易与“简单过滤选择器”混淆
    :first :eq() :last

    <script>
        function f1(){
            //把全部的li汇合到一起找到第一个
            $("li:first").css("color","red");  //一个结果
    
            //first-child匹配其父元素下的第一个子元素
            $("li:first-child").css("color","blue"); //两个结果
            $("li:last-child").css("color","red");//两个结果
    
            $("li:nth-child(2)").css("background-color","lightblue"); //两个结果
            $("li:nth-child(even)").css("background-color","lightblue");
            $("li:nth-child(odd)").css("background-color","lightblue");
    
            //找到其父元素只有一个子元素的元素
            $("li:only-child").css('color','red');
        }
    </script>
    
    
    
    <body>
        <ul>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
        <ul>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
        <ul>
            <li>老大</li>
        </ul>
    
    
        <input type="button" value="触发" onclick="f1()">
    </body>

    子元素选择器 和 简单过滤选择器使用 区别:

    1. 简单过滤选择器使用

      • a) 把全部元素放到一起统一使用
      • b) 下标从0开始计算

    2.子元素选择器

    • a) 每个元素的父元素看成独立的单位进行运算
    • b) 下标从1开始计算

    版权声明:本文为小平果原创文章,转载请注明:http://blog.csdn.net/i10630226

  • 相关阅读:
    [置顶] 内外网同时访问,我的拿来主义
    Nginx防攻击工具教程一 ngx_http_limit_conn_module
    晒晒我的厨艺修炼成果
    在 javascript 中,为什么 [1,2] + [3,4] 不等于 [1,2,3,4]?
    无法解析的外部符号__imp__AlphaBlend@44的解决
    Win32 API实现CDC类的FillSolidRect接口
    pugixml库学习之添加节点
    cleanup failed because the file not under version control问题的解决
    JavaScript 的 typeof 的用途
    支持在Win7和XP系统上创建环境变量的批处理文件
  • 原文地址:https://www.cnblogs.com/dingxiaoyue/p/4948195.html
Copyright © 2011-2022 走看看