zoukankan      html  css  js  c++  java
  • jQuery之选择器

    概述

    说明:

      选择器本身只是一个有特定语法规则的字符串,没有实质用处。它的基本语法规则使用的就是CSS的选择器语法,并对其进行了扩展。只有调用$(),并将选择器作为参数传入才能起作用。

      $(selector)作用:根据选择器规则在整个文档中查找所有匹配的标签的数组,并封装成jQuery对象返回。

    分类:

      基本选择器

      层级选择器

      过滤选择器

      表单选择器

    基本选择器

    说明:

      最基本最常用的选择器。

    分类:

      #idid选择器,根据id查找标签对象。

      element:元素选择器,根据标签名查找标签对象。

      .class:属性选择器,根据class查找标签对象。

      *:任意标签,所有元素。

      selector1,selector2,selectorN:取多个选择器的并集结果并返回(组合选择器)。

      selector1selector2selectorN:取多个选择器的交集结果并返回(相交选择器)。

    示例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>基本选择器</title>
    </head>
    <body>
    
    <div id="div1" class="box">div1(class="box")</div>
    <div id="div2" class="box">div2(class="box")</div>
    <div id="div3">div3</div>
    <span class="box">span(class="box")</span>
    <br>
    <ul>
        <li>AAAAA</li>
        <li title="hello">BBBBB(title="hello")</li>
        <li class="box">CCCCC(class="box")</li>
        <li title="hello">DDDDDD(title="hello")</li>
    </ul>
    
    <script type="text/javascript" src="../js/jquery.min.js"></script>
    <script type="text/javascript">
    
        /*
         * 需求:
         * 1.选择id为div1的元素
         * 2.选择所有的div元素
         * 3.选择所有class属性为box的元素
         * 4.选择所有的div和span元素
         * 5.选择所有class属性为box的div元素
         */
        $(function (){
            //1.选择id为div1的元素
            $('#div1').css('background', 'red');
            //2.选择所有的div元素
            $('div').css('background', 'red');
            //3.选择所有class属性为box的元素
            $('.box').css('background', 'red');
            //4.选择所有的div和span元素
            $('div,span').css('background', 'red');
            //5.选择所有class属性为box的div元素
            $('div.box').css('background', 'red');//不能写.boxdiv
        });
    </script>
    </body>
    </html>

    层级选择器

    说明:

      查找子元素、后代元素、兄弟元素的选择器。

    分类:

      ancestor descendant:后代选择器,在给定的祖先元素下的后代元素中匹配元素。

      parent > child:子元素选择器,在给定的父元素下的子元素中匹配元素。

      prev + next:相邻元素选贼器,匹配所有紧接在prev元素后的next元素。

      prev ~ siblings:后代兄弟选择器,匹配prev元素之后的所有siblings元素。

    示例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>层次选择器</title>
    </head>
    <body>
    
    <ul>
        <li>AAAAA</li>
        <li class="box">CCCCC</li>
        <li title="hello"><span>BBBBB</span></li>
        <li title="hello"><span>DDDD</span></li>
        <span>EEEEE</span>
    </ul>
    
    <script type="text/javascript" src="../js/jquery.min.js"></script>
    <script type="text/javascript">
    
        /*
         * 需求:
         * 1.选中ul下所有的的span
         * 2.选中ul下所有的子元素span
         * 3.选中class为box的下一个li
         * 4.选中ul下的class为box的元素后面的所有兄弟元素
         */
        $(function (){
            //1.选中ul下所有的的span
            $('ul span').css('background', 'red');
            //2.选中ul下所有的子元素span
            $('ul>span').css('background', 'red');
            //3.选中class为box的下一个li
            $('.box+li').css('background', 'red');
            //4.选中ul下的class为box的元素后面的所有兄弟元素
            $('ul .box~*').css('background', 'red');
        });
    </script>
    </body>
    </html>

    过滤选择器

    说明:

      在原有选择器匹配的元素中进一步进行过滤的选择器。

    基本过滤器:

      :first:获取第一个元素。

      :last:获取最后个元素。

      :not(selector):去除所有与给定选择器匹配的元素。

      :even:匹配所有索引值为偶数的元素,从0开始计数。

      :odd:匹配所有索引值为奇数的元素,从0开始计数。

      :eq(index):匹配一个给定索引值的元素。

      :gt(index):匹配所有大于给定索引值的元素。

      :lt(index):匹配所有小于给定索引值的元素。

      :header:匹配如h1,h2,h3之类的标题元素。

      :animated:匹配所有正在执行动画效果的元素。

    内容过滤器:

      :contains(text):匹配包含给定文本的元素。

      :empty:匹配所有不包含子元素或者文本的空元素。

      :parent:匹配含有子元素或者文本的元素。

      :has(selector):匹配含有选择器所匹配的元素的元素。

    属性过滤器:

      [attribute]:匹配包含给定属性的元素。

      [attribute=value]:匹配给定的属性是某个特定值的元素。

      [attribute!=value]:匹配所有不含有指定的属性,或者属性不等于特定值的元素。

      [attribute^=value]:匹配给定的属性是以某些值开始的元素。

      [attribute$=value]:匹配给定的属性是以某些值结尾的元素。

      [attribute*=value]:匹配给定的属性是以包含某些值的元素。

      [attrSel1][attrSel2][attrSelN]:复合属性选择器,需要同时满足多个条件时使用。

    示例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>过滤选择器</title>
    </head>
    <body>
    
    <div id="div1" class="box">class为box的div1</div>
    <div id="div2" class="box">class为box的div2</div>
    <div id="div3">div3</div>
    <span class="box">class为box的span</span>
    <br/>
    <ul>
        <li>AAAAA</li>
        <li title="hello">BBBBB</li>
        <li class="box">CCCCC</li>
        <li title="hello">DDDDDD</li>
        <li title="two">BBBBB</li>
        <li style="display:none">我本来是隐藏的</li>
    </ul>
    
    <script type="text/javascript" src="../js/jquery.min.js"></script>
    <script type="text/javascript">
    
        /*
         * 需求:
         * 1.选择第一个div
         * 2.选择最后一个class为box的元素
         * 3.选择所有class属性不为box的div
         * 4.选择第二个和第三个li元素
         * 5.选择内容为BBBBB的li
         * 6.选择隐藏的li
         * 7.选择有title属性的li元素
         * 8.选择所有属性title为hello的li元素
         */
        $(function (){
            //1.选择第一个div
            $('div:first').css('background', 'red');
            //2.选择最后一个class为box的元素
            $('.box:last').css('background', 'red');
            //3.选择所有class属性不为box的div
            $('div:not(.box)').css('background', 'red');
            //4.选择第二个和第三个li元素
            $('li:gt(0):lt(2)').css('background', 'red'); //索引起始位置发生变化,重新开始计算
            $('li:lt(3):gt(0)').css('background', 'red'); //正确索引位置
            //5.选择内容为BBBBB的li
            $('li:contains(BBBBB)').css('background', 'red');
            //6.选择隐藏的li
            $('li:hidden ').show();
            //7.选择有title属性的li元素
            $('li[title]').css('background', 'red');
            //8.选择所有属性title为hello的li元素
            $('li[title=hello]').css('background', 'red');
        });
    </script>
    </body>
    </html>

    表单选择器

    表单:

      :input:匹配所有input、textarea、selectbutton元素。

      :text:匹配所有文本输入框。

      :password:匹配所有的密码输入框。

      :radio:匹配所有的单选框。

      :checkbox:匹配所有的复选框。

      :submit:匹配所有提交按钮。

      :image:匹配所有img标签。

      :reset:匹配所有重置按钮。

      :button:匹配所有input type = button<button>按钮。

      :file:匹配所有input type = file文件上传。

      :hidden:匹配所有不可见元素display:noneinput type = hidden

    表单对象属性:

      :enabled:匹配所有可用元素。

      :disabled:匹配所有不可用元素。

      :checked:匹配所有选中的单选、复选、下拉列表中选中的option标签对象。

      :selected:匹配所有选中的option

    示例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>表单选择器</title>
    </head>
    <body>
    
    <form>
        用户名: <input type="text"/><br>
        密码: <input type="password"/><br>
        爱好:
        <input type="checkbox" checked="checked"/>篮球
        <input type="checkbox" checked="checked"/>足球
        <input type="checkbox" checked="checked"/>羽毛球 <br>
        性别:
        <input type="radio" name="sex" value='male'/><input type="radio" name="sex" value='female'/><br>
        邮箱: <input type="text" name="email" disabled="disabled"/><br>
        所在地:
        <select>
            <option value="1">北京</option>
            <option value="2" selected="selected">天津</option>
            <option value="3">河北</option>
        </select><br>
        <input type="submit" value="提交"/>
    </form>
    
    <script type="text/javascript" src="../js/jquery.min.js"></script>
    <script type="text/javascript">
    
        /*
         * 需求:
         * 1.选择不可用的文本输入框
         * 2.显示选择爱好的个数
         * 3.显示选择的城市名称
         */
        $(function (){
            //1.选择不可用的文本输入框
            $(':input:disabled').css('background', 'red');
            //2.显示选择爱好的个数
            console.log($(':checkbox:checked').length);
            //3.显示选择的城市名称
            console.log($('select>option:selected').html());
            console.log($('select').val()); //得到的是选择的option的value
        });
    </script>
    </body>
    </html>
  • 相关阅读:
    Logstash 安装并把mysql数据同步到elasticsearch
    springboot 集成elasticsearch
    centos7 搭建Elasticsearch集群
    centos7 elasticsearch 安装
    elasticsearch 深度分页以及scroll 滚动搜索
    elasticsearch DSL常用查询总结
    elasticsearch ik分词器自定义词库
    elasticsearch 安装IK中文分词器
    elasticsearch 分词与内置分词器
    elasticsearch 文档乐观锁控制 if_seq_no与if_primary_term
  • 原文地址:https://www.cnblogs.com/hfl1996/p/13267706.html
Copyright © 2011-2022 走看看