zoukankan      html  css  js  c++  java
  • day77-jQuery-选择器和筛选器

    1. jQuery介绍
        1.1 jQuery是一个轻量级的、兼容多浏览器的JavaScript库。
        1.2 jQuery使用户能够更方便地处理HTML Document、Events、实现动画效果、方便地进行Ajax交互,能够极大地简化JavaScript编程。
            它的宗旨就是:“Write less, do more.“
        1.3 一款轻量级的JS框架。jQuery核心js文件才几十kb,不会影响页面加载速度。
        1.4 丰富的DOM选择器,jQuery的选择器用起来很方便,比如要找到某个DOM对象的相邻元素,JS可能要写好几行代码,而jQuery一行代码就搞定了,再比如要将一个表格的隔行变色,jQuery也是一行代码搞定。
        1.5 链式表达式。jQuery的链式操作可以把多个操作写在一行代码里,更加简洁。
        1.6 事件、样式、动画支持。jQuery还简化了js操作css的代码,并且代码的可读性也比js要强。
        1.7 Ajax操作支持。jQuery简化了AJAX操作,后端只需返回一个JSON格式的字符串就能完成与前端的通信。
        1.8 跨浏览器兼容。jQuery基本兼容了现在主流的浏览器,不用再为浏览器的兼容问题而伤透脑筋。
        1.9 插件扩展开发。jQuery有着丰富的第三方的插件,例如:树形菜单、日期控件、图片切换插件、弹出窗口等等基本前端页面上的组件都有对应插件,并且用jQuery插件做出来的效果很炫,并且可以根据自己需要去改写和封装插件,简单实用。
    
    2. jQuery内容:
        2.1 选择器
        2.2 筛选器
        2.3 样式操作
        2.4 文本操作
        2.5 属性操作
        2.6 文档处理
        2.7 事件
        2.8 动画效果
        2.9 插件
        3.0 each、data、Ajax
    
    3. DOM对象和jQuery对象转换:
        3.1 DOM对象和jQuery对象他们都有各自的方法,他们的方法不能互用,所以需要转换。
        3.2 注意声明jQuery对象时,前面要加$。
        3.3 DOM对象转换成jQuery对象:    $(DOM对象),这是一个Object对象
        3.4 jQuery对象转换成DOM对象:    jQuery对象[0],这个一个具体的标签
        3.5下面测试可以发现:
                $(DOM对象)    这个DOM对象指的是通过ById、ByClassName、ByTagName找到的DOM对象。
                            简单理解就是DOM对象套一个$就可以转换为jQuery对象。
                jQuery对象[0]    可获取一个具体的标签,它可以是含有id、class的标签。
                            简单理解就是jQuery对象加一个[0]就可以转换为DOM对象。
    
        <div id="d1">d1d1</div>
            <div id="d2">d2d2</div>
            <div class="c1">c1c1</div>
            <div class="c2">c2c2</div>
    
        ById:    var d1Ele = document.getElementById('d1');    //DOM对象:d1Ele
            d1Ele;                    //<div id="d1">  这个一个具体的标签
            $(d1Ele);                    //Object [ div#d1 ]  DOM对象转换成jQuery对象
    
                    var $d2Ele = $('#d2');        //jQuery对象:$d2Ele
            $d2Ele;                //Object [ div#d2 ]
                    $d2Ele[0];                //<div id="d2">  jQuery对象转换成DOM对象,这个一个具体的标签
    
        ByClassName:    var c1Ele = document.getElementsByClassName('c1');    //DOM对象:d1Ele
        或ByTagName:    c1Ele;            //HTMLCollection [ div.c1 ] 
                c1Ele[0];            //<div class="c1">  这个一个具体的标签
                $(c1Ele);            //Object [ div.c1 ]
                $(c1Ele[0]);        //Object [ div.c1 ]
                注意:$(c1Ele)和$(c1Ele[0])结果都一样,都是jQuery对象。
                    
                var $c2Ele = $('.c2');
                        $c2Ele;        //Object { 0: div.c2, length: 1, prevObject: Object(1) }
                       $c2Ele[0];        //<div class="c2"> jQuery对象转换成DOM对象,这个一个具体的标签
    
    4. 选择器: 查找标签
        4.1 基本选择器
            id选择器:    $('#id')        例:$('#d1')
            class选择器:    $('.className')    例:$('.c1')
            标签选择器:    $('tagName')    例:$('div')
            配合使用:    $('div.c1')    找到类名是c1的div标签
            所有元素选择器:    $("*")
            组合选择器:    $('#id,.className,tagName')    例:$('#id,.c1,div') 注意逗号分隔
    
        4.2 层级选择器
            $("x y");// x的所有后代y(子子孙孙)
            $("x > y");// x的所有儿子y(儿子) 例如:$('#d1>a');
            $("x + y")// 找到所有紧挨在x后面的y
            $("x ~ y")// x之后所有的兄弟y
    
        4.3 属性选择器
            <input type="text" name="用户名">
            <input type="password">
            <input type="checkbox">
    
            $("input[type='checkbox']");    // 找到checkbox类型的input标签,注意外层是双引号,内层是单引号
            $("input[type!='text']");    // 找到类型不是text的input标签
            $("input[name='用户名']");
    
    5. 筛选器:索引都是从0开始
        5.1 基本筛选器:
        :first // 第一个
        :last // 最后一个
        :eq(index)// 索引等于index的那个元素
        :even // 匹配所有索引值为偶数的元素
        :odd // 匹配所有索引值为奇数的元素
        :gt(index)// 匹配所有大于给定索引值的元素
        :lt(index)// 匹配所有小于给定索引值的元素,注意这个l是L的小写
        :not(元素选择器)// 移除所有满足not条件的标签
        :has(元素选择器)// 选取所有包含一个或多个标签在其内的标签(指的是从后代元素找)
    
        示例:
            <ul>
                        <li>1</li>
                        <li>2</li>
                        <li>3</li>
                        <li>4</li>
                        <li>5</li>
                </ul>
    
        $('ul li:first');    //Object { 0: li, length: 1, prevObject: Object(1) }
        $('ul li:eq(2)');
        $('ul li:gt(2)');    //也就是找到索引为3和4的标签
        $('ul li:not(.c1)');    //找到后代中所有不包含c1类的li标签
        $('ul li:not(:has(a))')    //找到后代中所有不包含a标签的li标签
        $("div:has(h1)")    //找到后代中有h1标签的div标签
        $("div:has(.c1)")    //找到后代中有c1样式类的div标签
    
        5.2 表单筛选器:
        :text
        :password
        :file
        :radio
        :checkbox
        :submit
        :reset
        :button
    
        :enabled    //可用的
        :disabled    //不可用
        :checked
        :selected
    
        $(":checkbox")          // 找到所有包含checkbox的标签
        $("input:checkbox")      // 找到所有包含checkbox的标签,这两种写法是同一个意思。
    
        示例1:找到可用的input标签:
            <form>
                  <input name="email" disabled="disabled" />
                  <input name="id" />
            </form>
    
            $("input:enabled")      // 找到可用的input标签
    
        示例2:找到默认的(被选中的)option:
            <select id="s1">
                  <option value="beijing">北京市</option>
                  <option value="shanghai">上海市</option>
                  <option selected value="guangzhou">广州市</option>
                  <option value="shenzhen">深圳市</option>
            </select>
    
            $(":selected")  // 找到所有默认的option
    
        5.3 筛选器方法:    使用 对象.方法() 找到的元素也是一个对象,是对象就可以使用jQuery的方法,例如$('#id').next().siblings('.c1');
                注意:如果()可填写,那么它可填写的是id、class、tagname、其他表达式。
            下一个元素:
                $("#id").next()
                $("#id").nextAll()
                $("#id").nextUntil("#i2")
            上一个元素:
                $("#id").prev()
                $("#id").prevAll()
                $("#id").prevUntil("#i2")
            父亲元素:
                $("#id").parent()
                $("#id").parents()  // 查找当前元素的所有的父辈元素
                $("#id").parentsUntil() // 查找当前元素的所有的父辈元素,直到遇到匹配的那个元素为止。
            儿子和兄弟元素:
                $("#id").children();// 儿子们,跟$('#d1>*');效果一样。具体某个儿子:$("#id").children('#d1')或$("#id").children('.c1');
                $("#id").siblings();// 兄弟们。具体某个兄弟:$("#id").siblings('#d1')或$("#id").siblings('.c1');
    
            查找
                搜索所有与指定表达式匹配的元素。这个函数是找出正在处理的元素的后代元素的好方法。
                $("div").find("p")    等价于$("div p")
    
            筛选:用逗号分隔多个表达式。
                $("div").filter(".c1")  // 从结果集中过滤出有c1样式类的,等价于 $("div.c1")
    
            补充:跟上面的基本筛选器的效果一样
                .first() // 获取匹配的第一个元素
                .last() // 获取匹配的最后一个元素
                .not() // 从匹配元素的集合中删除与指定表达式匹配的元素
                .has() // 保留包含特定后代的元素,去掉那些不含有指定后代的元素。
                .eq() // 索引值等于指定值的元素
  • 相关阅读:
    php长字符串
    ObjectiveC中的一些特殊的数据类型
    Android带文字的ImageButton实现
    android Error generating final archive: Debug certificate expired on xxxxxx
    iphone
    同步与异步调用http请求 iphone开发
    php输出xml格式字符串(用的这个)
    PHP数据库调用类调用实例
    VMware 8安装苹果操作系统Mac OS X 10.7 Lion正式版
    break和continue的区别
  • 原文地址:https://www.cnblogs.com/python-daxiong/p/12454434.html
Copyright © 2011-2022 走看看