美文网首页
jQuery中的选择器

jQuery中的选择器

作者: Victor细节 | 来源:发表于2016-12-25 19:12 被阅读0次

    css选择器

     $("#box")               //id选择器
     $div2 =$(".box");       //class选择器
     $div3 = $("div");       //element选择器
     $div4 = $("#box,.box"); //群组选择器
     $div5 = $("*");         //通配选择器
    

    层级选择器

    $li1 = $("#list li");      //后代选择器--祖孙
    $li2 = $("#list>li");      //子元素选择器--父子关系
    $li3 = $("#first+");       //紧邻同辈选择器,忽略空白文本节点
    $li4 = $("#first~");       //相邻的后面的同辈选择器
    

    表单选择器

        // 01 :input 获取表单中所有的input select textarea元素
        console.log( $("#f1 :input") );
        // 02 :text 获取单行输入框
        // 获取id为f1的元素的后代中的单行输入框
        console.log( $("#f1 :text") );
        // 03 :password
        // 04 :radio
        // 05 :checkbox
        // 06 :file
        // 07 :image
        // 08 :reset
        // 09 :submit
        // 10 :button
        // 11 :hidden
    

    基本过滤器

        // 注意:过滤选择器要和其他选择器搭配使用
        // 根据下标来过滤
        // 01 :first
        // 在匹配到的所有li的集合中选取第一个元素
        console.log( $("li:first") );
        // 02 :last
        console.log( $("li:last") );
        // 03 :eq(index) 下标从0开始  ==
        console.log( $("li:eq(1)") );
        // 04 :gt(index) 下标大于index   gt--->great that
        console.log( $("li:gt(2)") );
        // 05 :lt(index) 下标小于index   lt--->litte that
        console.log( $("li:lt(3)") );
        // 06 :odd 奇数
        console.log( $("li:odd") );
        // 07 :even 偶数
        console.log( $("li:even") );
        // 08 :not(指定选择器) 去除与指定选择器匹配的元素
        // 去除id为li2的li元素
        console.log( $("li:not(#li2)") );
        // 09 :header
        // 获取到标题元素的集合
        $(":header").css("background-color","red");
        // 10 :animated 匹配正在执行动画的元素
    

    内容过滤器

        // 01:查找所有的包含指定文本值的元素
        // :contains(指定的文本值)
        console.log( $(":contains(你好)") );
        // 面试题:查找出页面中所有包含“招聘”二字的div,把招聘高亮显示
        // div:contains(招聘)
        // 替换 replace(旧,新)
        var $zpDiv = $("div:contains(招聘)");
        console.log($zpDiv);
        for(var i in $zpDiv){
            // 只能遍历数组 对象
        }
        for (var i = 0; i < $zpDiv.length; i++) {
            var div = $zpDiv[i];//DOM对象
            var cont = div.innerHTML;
            div.innerHTML = cont.replace(/招聘/g,"<span style='background:red'>招聘</span>");
        }
        // 02:has(selector)
        // 查找所有包含指定选择器的子元素的元素
        console.log( $("div:has(p)") );
        // 筛选出含有class为test的子元素的div
        console.log( $("div:has(.test)") );
        // 03 :empty 筛选出空元素
        console.log( $("div:empty") );
        // 04 :parent 筛选出非空元素
        console.log( $("div:parent") );
    

    属性过滤器

        // 01 [attr] 筛选出含有指定属性的元素
        // 筛选出含有placeholder属性的元素
        console.log( $("input[placeholder]") );
        // 02 [attr=value] 筛选出含有指定属性值的元素
        console.log( $("input[type=checkbox]") );
        // 03 [attr!=value] 筛选出属性值不等于指定值的元素
        console.log( $("input[type!=radio]") );
        // 04 ^ [attr^=value] 筛选出属性值以指定值开头的元素
        // $("[class^=banner]").css("background-color","red");
        // $("[class^=banner]").css("height","50px");
        $("[class^=banner]").css({"background-color":"red","height":"100px","width":"100px"});
        // 05 $ [attr$=value] 筛选出属性值以指定值结尾的元素
        $("[class$=div]").css({"width":"50px","height":"50px","background-color":"green"});
        // 06 * [attr*=value]筛选出属性值包含指定值的元素
        $("[placeholder*=密码]").css("background-color","red");
        // 07 [attr1][attr2]...[attrN]
        // 筛选出包含多个指定属性的元素
        console.log( $("input[type][placeholder]") );
        // 含有一个属性 多个属性 []
        // 属性值等于= 不等于!=  以XX开头^=  以XX结尾$= 包含XX *=
    

    子元素过滤器

        // 01 :first-child
        // 匹配那个ul是其父节点的第一个子节点
        console.log( $("ul:first-child") );
        console.log( $("ul:first") );//拿到集合中的第一个
        console.log( $("ul>li:first-child") );
        console.log( $("ul>li:first"));
        console.log( $("#list1 li:first-child"))
        // 02 :last-child
        console.log( $("ul:last-child"));
        // 03 :nth-child(num|even|odd|3n) 下标是从1开始的 
        console.log( $("ul:nth-child(2)"));
        $("tbody tr:first-child").css("background-color","red");
        // 04 :nth-last-child()
    

    可见性过滤选择器

        // 01 :hidden
        console.log( $("div:hidden") ); //2
        // 02 :visible
        console.log( $("div:visible") );//3
        //隐藏的出现 出现的隐藏
        document.getElementById("btn").addEventListener("click",function(){
            $("div:hidden").css("display","block");
            $("div:visible").css("display","none");
        },false)
    

    表单属性过滤选择器

        // 01 :enabled 可用的
        console.log( $(":text:enabled") );
        // 02 :disabled 不可用的
        console.log( $(":text:disabled") );
        // 03 :checked 选中的(单选框 多选框)
        console.log( $(":input:checked") );
        // 04 :selected 选中的(下拉列表)
        console.log( $("option:selected") );
        document.getElementById("btn").onclick = function(){
        console.log( $(":checkbox:checked:not(:eq(3))").length );
      }
    

    重要!!!
    DOM对象:根据原生的方法获取到的是DOM对象;DOM树上的节点就是DOM对象
    jQuery对象:根据jQuery的选择器获取到的是jQuery对象;
    jQuery对象是对DOM对象的包装。
    DOM对象---->jQuery对象
    $(DOM对象)
    jQuery对象-->DOM对象
    jQuery对象index
    jQuery对象.get(index)
    注意:jQuery对象只能使用jQuery中封装的方法,不能使用DOM的对象的方法;同理,DOM对象只能使用DOM的方法不能使用jQuery中封装的方法

    相关文章

      网友评论

          本文标题:jQuery中的选择器

          本文链接:https://www.haomeiwen.com/subject/rwldvttx.html