• day17--JQuery选择器


        操作HTML标签的时候,我们首先要找到HTML标签的位置,然后进行操作,下面来看看集中查找标签的方法,如下:

        1、Id选择器   -- Id在HTML中是唯一的,通过Id进行查找,Id对应的是#号      id ==》#

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div id="i10" class="c1">
            <div>
                <a>caonima</a>
            </div>
            <a>alexsb</a>
            <a>您好</a>
            <a>ershazi</a>
        </div>
        <div class="c1">
            <a>f</a>
        </div>
        <div class="c1">
            <div class="c2"></div>
        </div>
        <script src="jquery-1.12.4.js">
        </script>
    </body>
    </html>

        上面HTML代码,下面使用$("#i10")进行查找,查找Id="i10"的标签,如下:

    > obj = $('#i10')
    > [div#i10.c1, context: document, selector: "#i10"]      <!-- 查询到了id="i10"的<div>标签,div标签下面还有子标签,通过一定查找,可以定位到子标签-->
        > 0:div#i10.c1                                       <!-- 上面标签里面的内容 -->
        > context:document
        > length:1
        > selector:"#i10"
        > __proto__:Object(0)

        2、.c1选择器  class选择器,class选择器对应的是.    class ==》 .(点)

        通过

    > obj = $('.c1')
    > [div#i10.c1, context: document, selector: "#i10"]    <!-- .c1找到的也是<div>标签,内容一样,因为<div>标签里面有id和class -->  
        > 0:div#i10.c1                                     <!-- div标签下面有子标签,可以通过一定方法进行获取 -->                                    
        > context:document
        > length:1
        > selector:"#i10"
        > __proto__:Object(0)

        3、标签选择器,通过标签本身进行选择

    选择上面HTML中所有的<a>标签,如下:
    > obj = $("a")      <!-- 选择HTML中所有的a标签,可以看出,找到5个<a>标签,所有的a标签 -->
    > (5) [a, a, a, a, a, prevObject: jQuery.fn.init(1), context: document, selector: "a"]
    > obj[4] <!-- 选择上面标签中的第5个a标签 -->
    > <a>f</a>

        4、组合查询   组合查询使用的是逗号(,),$('a,.c2,#i10)意思是找到所有<a>标签,class=c2的标签和id="i10"的标签,如下:

    > obj = $("a,.c2,#i10")    <!-- 组合查询,查询所有<a>标签,class="c2"标签,id="i10"标签,进行组合查询 -->
    > (7) [div#i10.c1, a, a, a, a, a, div.c2, prevObject: jQuery.fn.init(1), context: document, selector: "a,.c2,#i10"]

        5、层级查询   找到某一个标签下面的标签,这个我比较喜欢,一层一层的进行查找,如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div id="i10" class="c1">
            <div>
                <a>caonima</a>
            </div>
            <a>alexsb</a>
            <a>您好</a>
            <a>ershazi</a>
        </div>
        <div class="c1">
            <a>f</a>
        </div>
        <div class="c1">
            <div class="c2">找的就是你,你妈,层级选择器</div>
        </div>
        <script src="jquery-1.12.4.js">
        </script>
    </body>
    </html>
    ===============================================查找标签class等于c1下面的标签class等于c2的标签===========================================
    > obj = $('.c1 .c2') <!-- 查找标签class等于c1下面的标签class等于c2的标签的所有标签,子子孙孙 -->
    > [div.c2, prevObject: jQuery.fn.init(1), context: document, selector: ".c1 .c2"]
    > obj[0]
    > <div class="c2">找的就是你,你妈,层级选择器</div>

        parent > child  >符号代表只找子标签,如下:

    > obj = $("#i10 a")   <!-- 查找id="i10"标签下面所有的<a>标签,包括子标签和孙子标签,所有的标签-->
    > (4) [a, a, a, a, prevObject: jQuery.fn.init(1), context: document, selector: "#i10 a"]
    
    > con = $("#i10>a")  <!--查找标签id="1o"下面的子标签<a>,只查找子标签看是否是<a>标签 -->
    > (3) [a, a, a, prevObject: jQuery.fn.init(1), context: document, selector: "#i10>a"]

        “>”大于号代表只查找层级标签下面的子标签," "空格代表查找子标签下的所有满足条件的标签,子子孙孙。

        6、筛选选择器    比如::first筛选满足条件的第一个,如下:

    > obj = $('#i10 a:first')   <!--  筛选满足条件的第一个标签-->
    > [a, prevObject: jQuery.fn.init(1), context: document, selector: "#i10 a:first"]

    > obj = $('#i10 a:odd') <!-- 筛选满足条件的奇数标签-->
    > (2) [a, a, prevObject: jQuery.fn.init(1), context: document, selector: "#i10 a:odd"]

    > obj = $('#i10 a:even') <!-- 筛选满足条件的偶数标签 -->
    > (2) [a, a, prevObject: jQuery.fn.init(1), context: document, selector: "#i10 a:even"]

    > obj = $('#i10 a:last') <!-- 筛选满足条件标签的最后一个标签-->
    > [a, prevObject: jQuery.fn.init(1), context: document, selector: "#i10 a:last"]

    > obj = $('#i10 a:eq(0)') <!-- 筛选满足条件索引等于0的标签 -->
    > [a, prevObject: jQuery.fn.init(1), context: document, selector: "#i10 a:eq(0)"]
    > obj = $("#i10 a:gt(2)") <!-- 筛选满足条件索引大于2的标签 -->
    > [a, prevObject: jQuery.fn.init(1), context: document, selector: "#i10 a:gt(2)"]

    > obj = $('#i10 a:lt(2)') <!-- 筛选满足条件索引小于2的标签 -->
    > (2) [a, a, prevObject: jQuery.fn.init(1), context: document, selector: "#i10 a:lt(2)"] 查找所有未选中的 input 元素 HTML 代码:
    <input name="apple" /> <input name="flower" checked="checked" /> jQuery 代码: $("input:not(:checked)")
    结果:
    [ <input name="apple" /> ]

        7、内容(text)选择器

            (1):contains(text)      -- 查找标签里面值包含text的标签

    :contains(text)
    概述
        匹配包含给定文本的元素
    参数
        text                String
        一个用以查找的字符串
    示例
        描述:
            查找所有包含 "John" 的 div 元素
        HTML 代码:
        <div>John Resig</div>
        <div>George Martin</div>
        <div>Malcom John Sinclair</div>
        <div>J. Ohn
        jQuery 代码:
        $("div:contains('John')")
        结果:
            [ <div>John Resig</div>, <div>Malcom John Sinclair</div> ]

        (2):empty     -- 查找标签里面内容包含空的标签,经常用在表格中,比如查找空单元格的时候

    :empty
    概述
        匹配所有不包含子元素或者文本的空元素
    示例
        描述:
            查找所有不包含子元素或者文本的空元素
        HTML 代码:
        <table>
          <tr><td>Value 1</td><td></td></tr>
          <tr><td>Value 2</td><td></td></tr>
        </table>
     jQuery 代码:
    $("td:empty")
    结果:
    [ <td></td>, <td></td> ]

        (3):has(selector)     --判断标签存在  addClass给标签添加class属性

    :has(selector)
    概述
        匹配含有选择器所匹配的元素的元素
    参数
        selector     Selector
        一个用于筛选的选择器
    示例
    描述:
        给所有包含 p 元素的 div 元素添加一个 text 类  
    HTML 代码:
        <div><p>Hello</p></div>
        <div>Hello again!</div>
    jQuery 代码:
        $("div:has(p)").addClass("test");  <!-- 给含有<p>标签的<div>标签添加class="test"属性,obj = $('div div:has(a)').addClass('test')-->
    结果:
        [ <div class="test"><p>Hello</p></div> ]

        (4):parent  -- 查找标签含有子内容的元素    即查找非空的标签,里面有内容或者嵌套其他标签

    :parent
    概述
        匹配含有子元素或者文本的元素
    示例
        描述:
            查找所有含有子元素或者文本的 td 元素
        HTML 代码:
        <table>
          <tr><td>Value 1</td><td></td></tr>
          <tr><td>Value 2</td><td></td></tr>
        </table>
    jQuery 代码:
        $("td:parent")
    结果:
        [ <td>Value 1</td>, <td>Value 2</td> ]

     8、可见的  :hidden     :visible

        (1):hidden      匹配包含display:none的标签

    :hidden
    概述
        匹配所有不可见元素,或者type为hidden的元素
    示例
        描述:
            查找隐藏的 tr   匹配type为hidden的元素
        HTML 代码:
        <table>
          <tr style="display:none"><td>Value 1</td></tr>
          <tr><td>Value 2</td></tr>
        </table>
    jQuery 代码:
        $("tr:hidden")
    结果:
        [ <tr style="display:none"><td>Value 1</td></tr> ]

     (2):visable    可见的,display属性不等于none

    :visible
    概述
        匹配所有的可见元素
    示例
        描述:
            查找所有可见的 tr 元素
    HTML 代码:
        <table>
          <tr style="display:none"><td>Value 1</td></tr>
          <tr><td>Value 2</td></tr>
        </table>
    jQuery 代码:
        $("tr:visible")
    结果:
        [ <tr><td>Value 2</td></tr> ]

     9、属性

        [attribute]:查找标签里面具有某个属性的标签,如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .test{
                font-size:50px;
                color:red;
            }
        </style>
    </head>
    <body>
        <div id="i10" class="c1">
            <div>
                <a>caonima</a>
            </div>
            <a alex="123">alexsb</a>
            <a alex="456">您好</a>
            <a>ershazi</a>
            <a>属性标签,attribute</a>
        </div>
        <div class="c1">
            <a>f</a>
        </div>
        <div class="c1">
            <div class="c2">找的就是你,你妈,层级选择器</div>
        </div>
        <script src="jquery-1.12.4.js">
        </script>
    </body>
    </html>
    进行如下查询:
    (1)、[attribute] 查询标签中属性值是attribute的标签
    > obj = $('[alex]') <!-- 查找标签中含有属性值为"alex"的标签,比如alex="sb"属性值等于alex的标签 -->
    > (2) [a, a, prevObject: jQuery.fn.init(1), context: document, selector: "[alex]"]

    (2)[attribute=value] 查询标签属性值等于value的标签
    > obj = $('[alex="123"]') <!-- 查询属性等于alex且属性值等于123的标签
    > [a, prevObject: jQuery.fn.init(1), context: document, selector: "[alex="123"]"

    [attribute!=value] 属性值不等于value的标签
    [attribute^=value] 属性值不等于value的标签
    [attribute$=value] 属性值以attribute结尾,且值等于value的标签
    [attribute*=value] 属性值以attribute开头,且值等于value的标签
  • 相关阅读:
    Java栈、堆、方法区
    Java冒泡算法
    JDK8 API下载
    java 对两个整数变量的值进行互换。三种方法
    Java中double相减精度的问题,和解决方法
    window.onload问题
    ES6中class详解
    YOLO V2
    YOLO V1
    ORB-SLAM2源码解析
  • 原文地址:https://www.cnblogs.com/gengcx/p/7636756.html
Copyright © 2020-2023  润新知