美文网首页
06-jQuery过滤选择器-基本&可见过滤

06-jQuery过滤选择器-基本&可见过滤

作者: 轻思维 | 来源:发表于2017-08-31 22:31 被阅读0次

    jQeury过滤选择器-基本&可见过滤

    作者:曾庆林

    过滤选择器主要是通过特定的过滤规则来筛选出需要的DOM元素,过滤规则与CSS中的伪类选择器语法相同,即过滤选择器都是以冒号:开头。

    过滤选择器分类:

    • 基本过滤选择器
    • 内容过滤选择器
    • 可见性过滤选择器
    • 属性过滤选择器
    • 子元素过滤选择器
    • 表单对象属性过滤选择器

    基本过滤选择器

    选择器 描述 返回 示例
    :first 选择第1个元素 单个元素 $(“div:first”)选择第1个div元素
    :last 选择最后1个元素 单个元素 $(“div:last”)选择最后1个div元素
    :not(E1) 去除所有E1选择器匹配的元素 集合元素 $(“input:not(.my)”)选择class不是.my的所有input元素
    :even 选择索引是偶数的所有元素,索引从0开始 集合元素 $(“tr:even”)选择表格中所有偶数的行
    :odd 选择索引是奇数的所有元素,索引从0开始 集合元素 $(“tr:odd”)选择表格中所有奇数的行
    :eq(index) 选择索引值是index的元素,index从0开始 单个元素 $(“tr:eq(1)”)选择表格行索引等于1的行
    :gt(index) 选择索引值大于index的元素,index从0开始 集合元素 $(“tr:gt(1) ”)选择表格行索引大于1的行
    :lt(index) 选择索引值小于index的元素,index从0开始 集合元素 $(“tr:lt(1)”)选择表格行索引小于1的行
    :header 所取所有的标题元素,h1~h6 集合元素 $(“:header”)选择网页中所有的<h1>,<h2>…<h6>
    :animated 选择当前正在执行动画的所有元素 集合元素 $(“div:animated”)选择正在执行动画的div元素

    内容过滤选择器

    选择器 描述 返回值 示例
    :contains(text) 选择含有text文本内容的元素 集合元素 $(“div:contains(‘我’)”)选择内容里包含我的所有div
    :empty 选择不包含子元素或文本的空元素 集合元素 $(“div:empty”)选择不包含子元素(含文本)的所有div元素
    :has(E1) 选择包含有(E1选择器匹配的元素)的所有元素 集合元素 $(“div:has(p)”)选择含有p元素的所有div元素
    :parent 选择含有子元素或文本的元素 集合元素 $(“div:parent”)选择拥有子元素(包含文本)的所有div元素

    可见性过滤选择器

    选择器 描述 返回值 示例
    :hidden 选择所有不可见元素 集合元素 $(“:hidden”)选择所有不可见元素,包括:<input type=“hidden”/>,<div style=“display:none”>和<div style=“visibility:hidden”>等,如果只选择<input>元素,则可以使用 $(“input:hidden”)
    :visible 选择所有可见元素 集合元素 $(“div:visible”)选取所有可见的div元素

    案例-tab切换 可见过滤

    思路

    单击第几个,显示第几个,以前显示的隐藏  
    

    html结构

    <div id="tab1" class="tabs">
                <ul>
                    <li class="tab-title active">li1</li>
                    <li class="tab-title">li2</li>
                    <li class="tab-title">li3</li>
                </ul>
                <div class="tab-content" style="display: block;">内容1</div>
                <div class="tab-content" >内容2</div>
                <div class="tab-content">内容3</div>
    </div>
    

    css 部分

    * {
        margin: 0;
            padding: 0;
    }
                
    body {
        padding: 50px;
    }
    
    ul {
        list-style: none;
    }
    
    .tabs .tab-title {
        height: 35px;
        line-height: 35px;
        border: 1px solid #aaa;
        padding-left: 15px;
        padding-right: 15px;
        float: left;
        margin-right: 15px;
        position: relative;
        z-index: 10;
    }
    
    .tabs .active{border-bottom-color:#fff; color: #F80;}
    .tabs .tab-content {
        clear: both;
        border: 1px solid #aaa;
        padding: 25px;
        width: 450px;
        height: 300px;
        display: none;
        position: relative;
        top: -1px;
        z-index: 0;
    }
    #tab2 .tab-content{width: 800px;}
    

    js写法

    //[1] 单击第几个,显示第几个,以前显示的隐藏
    $(function(){
        $(".tab-title").click(function(){
            //以前显示的现在隐藏
            $(".tab-content:visible").hide();
            // 求出是第几个
            var num=$(".tab-title").index($(this));
            $(".tab-content:eq("+num+")").show();
            //之前有.active li 去掉active
            //当前li 添加actvie
            $(".active").removeClass("active");
            $(this).addClass("active");
        
        })
    })
    

    完整的示例

    
    <!doctype html>
    <html lang="en">
    
        <head>
            <meta charset="UTF-8" />
            <title>Document</title>
            <style>
                * {
                    margin: 0;
                    padding: 0;
                }
                
                body {
                    padding: 50px;
                }
                
                ul {
                    list-style: none;
                }
                
                .tabs .tab-title {
                    height: 35px;
                    line-height: 35px;
                    border: 1px solid #aaa;
                    padding-left: 15px;
                    padding-right: 15px;
                    float: left;
                    margin-right: 15px;
                    position: relative;
                    z-index: 10;
                }
                
                .tabs .active{border-bottom-color:#fff; color: #F80;}
                .tabs .tab-content {
                    clear: both;
                    border: 1px solid #aaa;
                    padding: 25px;
                    width: 450px;
                    height: 300px;
                    display: none;
                    position: relative;
                    top: -1px;
                    z-index: 0;
                }
                #tab2 .tab-content{width: 800px;}
            </style>
        </head>
    
        <body>
            <div id="tab1" class="tabs">
                <ul>
                    <li class="tab-title active">li1</li>
                    <li class="tab-title">li2</li>
                    <li class="tab-title">li3</li>
                </ul>
                <div class="tab-content" style="display: block;">内容1</div>
                <div class="tab-content" >内容2</div>
                <div class="tab-content">内容3</div>
            </div>
        <script src="js/jquery-1.4.2.min.js"></script>
        <script>
        //[1] 单击第几个,显示第几个,以前显示的隐藏
        $(function(){
            $(".tab-title").click(function(){
                //以前显示的现在隐藏
                $(".tab-content:visible").hide();
                // 求出是第几个
                var num=$(".tab-title").index($(this));
                $(".tab-content:eq("+num+")").show();
                //之前有.active li 去掉active
                //当前li 添加actvie
                $(".active").removeClass("active");
                $(this).addClass("active");
            
            })
        })
        </script>
        
    
        </body>
    
    </html>
    

    相关文章

      网友评论

          本文标题:06-jQuery过滤选择器-基本&可见过滤

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