美文网首页
12.12jquery选择器、增加删除class

12.12jquery选择器、增加删除class

作者: overisover | 来源:发表于2016-12-13 21:26 被阅读0次

    属性选择器

    <input type="text" value="123">
    <input type="text" value="456">
    <input type="text" >
    
    <script>
    $('input[value]').css('background', 'red');//有value属性的会被选中
    $('input[value=123]').css('background', 'red');//value值等于123的会被选中
    
    </script>
    
    <input type="text" value="123_555">
    <input type="text" value="123_666">
    <input type="text" value="333_888">
    
    <script>
    $('input[value^=123]').css('background', 'red');//选中以123开头的
    $('input[value$=555]').css('background', 'red');//选中以555结尾的
    $('input[value*=3]').css('background', 'red');//选中包含3的
    
    </script>
    

    引号的问题

    <div class="box box1"></div>
    <script>
    $('div[class=box box1]').css('background', 'red');
    //当属性的值有空格的 不加引号会报错,其他可以不加引号
    $('div[class="box box1"]').css('background', 'red');
    </script>
    

    链式调用

    获取值之后不能再有链式调用

    <body>
        <div>bbbbb</div>
    <script>
    // var $div = $('div');
    // $div.html('bbbb');
    // $div.css('background', 'red');
    // $div.click(function(){
    //     alert('111');
    // })
    
    //获取值之后不能再有链式调用
    $('div').css('background', 'red').html('aaaa').click(function(){
        alert(111);
    })
    </script>
    

    增加删除class

    • addClass() 增加
      removeClass() 删除
      toggleClass() 交替删除增加
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <script src="jquery-1.12.4.js"></script>
    <style>
    div{
        height: 100px;
        width: 100px;
    }
    
    .border{
        border: 1px solid #111;
    }
    
    .bg-light{
        background: yellow;
    }
    
    .bg-dark{
        background: #ddd;
    }
    </style>
    </head>
    <body>
    <div class="border bg-dark"></div>
    <script>
    //添加class
    // $('div').addClass('border bg-light');
    
    //删除class
    // $('div').removeClass('bg-dark border');
    
    
    //交替删除或增加
    $('div').click(function(){
        $(this).toggleClass('border');
    })
    
    
    </script>
    </body>
    </html>
    

    show() hide()

        var onOff=true;
            $('button').click(function(){
                if(onOff){
                    $('div').hide();//在内部改变display
                }else{
                    $('div').show();
                }
                onOff=!onOff;
            })
    

    兄弟元素的选择

    next();下一个兄弟元素;可以有多个参照,选择多个兄弟元素;
    prev();上一个兄弟元素;可以有多个参照,选择多个兄弟元素;
    nextAll() 当前元素下面所有的兄弟元素;可以有多个参照,选择多个兄弟元素;
    prevAll() 当前元素上面所有的兄弟元素;可以有多个参照,选择多个兄弟元素;
    siblings(); 当前元素所有的兄弟元素;可以有多个参照,选择多个兄弟元素;

    参数的筛选功能

    $('.item').siblings('.test').css('background','blue');//传入参数,筛选同时满足条件的对象
    下标选择:.eq();
    slice选择
    $('li').slice(1,3).css('background', 'red');//截取中间下标1~下标2
    children

    <body>
    <ul>
        <li>01</li>
        <li>02</li>
        <li class="selected">03</li>
        <li>04</li>
        <li>05</li>
    </ul>
    <script>
    $('ul').children('.selected').css( 'background', 'red');
    //选择ul子元素中class为.selectec 的元素
    </script>
    </body>
    

    find()
    $('.box').find('.inner').html('bbbbb');//查找子元素
    parent
    $('a').parent().css('background', 'red');//查找父元素
    closest
    closest必须有参数;从元素本身开始,在DOM 树上逐级向上级元素匹配,并返回最先匹配的祖先元素。

    <body>
    <div class="box">
        <div class="box">cccc
            <div>bbbb
                <div id="div1">aaaa</div> 
            </div>
        </div>   
    </div>
    <script>
    //closest必须有参数;从自身开始,查找最新满足条件的父元素;
    $('#div1').closest('.box').css('background', 'red');
    </script>
    </body>
    

    抽奖练习

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <script src=../jquery/jq190.js></script>
        <style>
        *{
            margin:0;
            padding:0;
        }
        ul{
            margin-top:50px;
            list-style: none;
            width:300px;
            text-align: center;
            line-height: 98px;
        }
        ul>li{
            width:98px;
            height:98px;
            border: 1px solid #ccc;
            float: left;
        }
        button{
            margin-top:350px;
            border: 1px solid #ccc;
        }
        .active{
            background:red;
        }
        </style>
    </head>
    <body>
        <ul>
            <li class="active">一等奖</li>
            <li>二等奖</li>
            <li>三等奖</li>
            <li>四等奖</li>
            <li>五等奖</li>
            <li>六等奖</li>
            <li>七等奖</li>
            <li>八等奖</li>
            <li>九等奖</li>
        </ul>
        <button>开始抽奖</button>
        <script>    
        $('button').click(function(){
            var result=parseInt(1+Math.random()*9)
            var steps=result+9;
            var iNow=0;
            var timer=setInterval(
                function(){
                    $('li').removeClass('active').eq(iNow%9).addClass('active');
                    iNow++;
                    if(iNow===steps){
                        clearInterval(timer);
                        alert('恭喜获得'+result+'等奖')
                    }
                }
            ,200)
        })
        </script>   
    </body>
    </html>
    

    创建节点

    //原生的方式
    var oDiv = document.createElement('div');
    
    //jq的方式
    var $div = $('<div>hai</div>') //可以直接添加内容
    

    append()方法 添加子元素//插入到子元素最后面
    prepend()方法 添加子元素//插入到子元素最前面
    before() after() 插入到当前元素前/后;

    append方法,添加子元素//插入到子元素最后

    • 参数:1. jq对象
      1. 标签字符串
      2. 原生的dom对象
    <script>
    var div = document.createElement('div');
    div.innerHTML = 'aaa';
    div.setAttribute('id', 'div1');
    div.style.background = 'red';
    // document.body.appendChild( div );
    //$还可以创建节点
    var $div1= $('<div></div>');//jq对象
    $div1.css('background', 'red');
    $div1.html('aaa');
    
    var $div = $('<div style="background: red">aaa</div>');
    
    // $('body').append( $div );
    // $('body').append(  '<div style="background: red">aaa</div>' );
    
    $('body').append(div);
    
    //append方法,添加子元素
    //参数: 1. jq对象
            // 2. 标签、字符串
            // 3. 原生的dom对象
    
    </script>
    

    删除节点

    .remove();删除操作会将元素上的事件也删除

    <ul>
        <li>5</li>
        <li>4</li>
        <li>3</li>
        <li>2</li>
        <li>1</li>
    </ul>
    <script>
    var $li = $('li').eq(1).click(function(){ alert(11) }).remove();
    //删除操作会将元素上的事件也删除
    $('ul').append( $li );
    </script>
    </body>
    

    index();

    <script>
    //表示所选元素在兄弟元素中排行第几 //包括其他标签元素在内的所有兄弟元素
    // alert( $('.item').index() );

    //第二种用法:
    alert( $('#span1').index('span') )
    //#span在所有span中排的位置
    </script>

    选项卡的代码

    <body>
    <div id="div1">
        <input class="active" type="button" value="1">
        <input type="button" value="2">
        <input type="button" value="3">
        <div style="display:block">111</div>
        <div>222</div>
        <div>333</div>
    </div>  
    <script>
    $('input').click(function(){
        var index = $(this).index('input');
        var $div = $('#div1 div');
        $div.hide().eq(index).show();
    });
    </script>
    </body>
    

    jq中的循环 each();

    函数中:
    i 第一个参数代表下标
    elem 第二个参数代表每个原生dom对象
    this指向:this==elem

    <body>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ul>
    <script>
    //回调函数中的第一个参数 索引值
     
    
    // $('li').each(function(i, elem){
    //  $(elem).html( i+1+5 );
    // });
    
    //continue跳出本次循环
    //break跳出整个循环
    
    // for(var i=0;i<9;i++){
    //  if( i===2 ){
    //      continue;
    //  }
    
    //  console.log(i);
    // }
    
    //在each中 return是跳出本次循环
    //return false 跳出整个循环
    $('li').each(function(i, elem){
        if(i===2){
            return false;
        }
        $(elem).html( i+1+5 );
    });
    </script>
    </body>
    

    退出循环

    在for循环中我们是用break来退出整个循环

    在.each() 中 return false来退出整个循环//return 退出本次循环

    jq与js的转换

    get() 获取原生都dom对象
    $('div').get(0).innerHTML = 'sdfsdf';
    与eq的区别
    get方法得到的是原生dom对象, eq得到的是jquery对象

    $('div').get(0).innerHTML = 'sdfsdf';
    $('div').eq(0).html('sdfsdf');
    

    相关文章

      网友评论

          本文标题:12.12jquery选择器、增加删除class

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