美文网首页
前端一周04 jQuery选择器、过滤器、DOM 操作、动画

前端一周04 jQuery选择器、过滤器、DOM 操作、动画

作者: 尘榆骡厌 | 来源:发表于2017-11-24 20:22 被阅读0次

学习JQ

   jq  jQuery   可以把它理解为一个插件   被人封装好的方法或属性的一个集合来给大家使用的

    不需要去研究太深,   会使用就可以
    
    底层源码还是原生js来去完成
    
    jQuery 它有一个别名  $

使用  jQuery?
     引入jQuery的依赖

    ready   其实很是类似于JavaScript onload 事件 
        页面加载完以后才去执行
        
        ready  只是加载当前的页面完成就可以了
        onload  加载当前页面并且还得加载完页面的一些依赖 才能执行
     
     $(document).ready(function(){
            //  页面加载完成后执行以下的程序  
        })
        
    简写: 
    $(function(){           //  ready 是一样的
        
    });

选择器
    标签选择器                      标签名
        //   标签选择器
        var box = $("div");    //  获取的是一个集合
        //  var box = document.getElementsByTagName('div');
        
    类选择器                       class名
        
        //   类选择器            class名     .代表类
        
        // var ps = $(".re");   //  只能找到class是re的标签     也是一个集合
            //  document.getElementsByClassName('re');
        var ps = $("p");
        console.log(ps);
        
    id选择器                    id名
        //  id选择器                   id名       #代表id
        
        var box = $('#box');   //  是一个集合
        
        console.log(box);
        
    群组选择器
        //  群组选择器                        多个选择器之间用,来分割
        var box = $('div,p,h1,span');
        console.log(box);

    后代选择器
        
                //var p = $('div p');    //   div 下面所有的p都找到
                //console.log(p);
        
        
    子代选择器
        
        var px = $('div>p');            //  只能找到div的子集的p
        
        console.log(px);
        
    通配选择器
        
        var box = $("*");    //   找到整个文档中的所有元素
        console.log(box);
        
    伪类选择器
        var p = $('div>a:link');
        console.log(p);

层级选择器

$("div span")//选择<div>里所有<span>元素
$("div>span")//选择<div>元素下元素名为<span>的元素
$('prev+next')//选择紧接在prev元素后的next元素
$('prev~siblings')//选择prev元素之后的所有sibling元素


        var box = $('#box');   //  box
        
        var h1 = $('#box+h1')      //  +  代表找兄弟集元素  只能找到紧挨着的
        console.log(h1);
        
        var ss = $('#box+div');
        console.log(ss);

    过滤选择器
    
    :first         :last
    
    var p = $('div>p:last');    //  先找到p集合   :first   找到第一个   
                                                // :last  找到最后一个
    console.log(p);
    
    
    :even              :odd
    :even   找到索引为偶数的所有元素
    :odd   找到索引为奇数的所有元素
    //  :even   :odd
        
        var p = $('div>p:even').css('background','blue');
        var p = $('div>p:odd').css('background','green');
        
    :eq()       选取索引等于index的元素
        var num = 0;
        $('div>p:eq('+num+')').css('color','red');
        $('#btn').click(function(){
            num++;
            if(num == $('div>p').length){
                num = 0;
            }
            $('div>p').css('color',"");
            $('div>p:eq('+num+')').css('color','red');
        })
        
    :gt()    :lt()
         gt   选取索引大于index的元素
         lt   选取索引小于index的元素
        var gt = $('div>p:lt(2)');   
        console.log(gt);
        
    :header      找到区域内所有的标题
        
    var h = $('div :header');
        console.log(h);
        
        
    :animated  (选取当前正在执行动画的所有元素)

内容过滤器
    :contains(text)//选取含有文本内容为text的元素

    var p = $('p:contains("00")');
        console.log(p);
        
    :empty         //选取不包含子元素或者文本的空元素

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

jq DOM 操作

    获取页面内的元素    
    修改页面元素  内容   样式  size
    添加  
    删除
    创建
    复制


    获取
            $('选择器')    获取到页面的元素
            
    创建   
    
            $("<p></p>").html("ssssss");      p.innerHTML = "ssss"

    添加
    
        append()//向每个匹配的元素内部追加内容

        appendTo()//将所匹配的元素追加到指定的元素中;$(a).appendTo(b)将a追加到b中
        
        prepend()//向每个匹配的元素内部前置内容,如$("p").prepend("<b>您好</b>");产生<p><b>您好<b>Walkingp</p>
        
        prependTo()//将所匹配的元素前置到指定的元素中。如$("<b>您好</b>").prependTo("p");
        
        after()//在每个匹配的元素之后插入内容,如$("p").prepend("<b>您好</b>");产生<p>Walkingp</p><b>您好</b>
        
        insertAfter()//将所有匹配元素插入到指定元素的后面,如$("<b>您好</b>").insertAfter("<p>");
        
        before()//在所匹配的元素之前插入内容,如$("p").before("<b>您好</b>")产生:<b>您好</b><p>walkingp</p>
        
        insertBefore()//将所匹配的元素插入到指定的元素的前面,如$("<b>您好</b>").insertBefore("p")

    属性和样式的操作
    
            属性:
                        attr()
                            获取属性的值和设置属性
                            attr('属性名')              获取属性的值
                            attr('属性名','属性值')     设置属性
                            
                            注意:  attr  可以设置自定义属性   如果设置或者获取元素本身就自带的属性  建议使用prop   
                            
                            
                        
                        prop()
                            获取属性的值和设置属性
                            prop('属性名')              获取属性的值
                            prop('属性名','属性值')     设置属性
                            
                            注意:   prop  主要正对于元素原本就自带的属性
                            
                            
                        removeAttr()   删除属性
                            
                            
        样式:
                    addClass   添加一个类来
                    
                    removeClass    删除一个类
                    
                    css()        改变样式
                    
                    hasClass   判断元素有没有一个类    有这个类就返回true   没有就返回false
                    
                    $('div').hasClass('box');

     val()
     
            获取input  select  这些元素的值        
            和原生js中的  value  是一样的功能
            
            val()    获取值
            val('值')   设置值
            
            
            
     节点操作
     //   原生js
     childNodes      parentNode    children     previousSibling  .....
     
     //  jq   
     
     children()     //取得匹配元素的子元素集合      Element    没有text
     
     next()        //取得匹配元素后面紧邻的同辈元素
     
     prev()        //取得匹配元素前面紧邻的同辈元素
     
     siblings()    // 取得匹配元素前后所有的同辈元素集
     
     closest()      //取得最近的匹配元素
     
     
     var child = $('#box').children();    //  找到 $('#box')的子元素
        
        console.log(child);
        
        
        var pre = $('#box').prev();    //  找到$('#box')前面的第一个同辈元素
        
        console.log(pre);
        
        
        var next = $('#box').next();    //  找到$('#box')后面的第一个元素
        
        console.log(next);
        
        
        var preAll = $('#box').prevAll();  //  找到$('#box')前面的所有的同辈元素
        
        console.log(preAll);
        
        var nextAll = $('#box').nextAll();   //  找到$('#box')后面的所有元素
        
        var  sb = $('#box').siblings();     //  找到除了$('#box')所有的同辈元素
        
        console.log(sb);

    事件:
        bind
            给绑定一个事件
            .bind('事件类型',fun);
            
            例:     .bind('click',fun)
                        .click(fun)
                        
        hover(enter,leave)方法
        
            //模拟光标悬停事件,光标移动到 元素上触发enter函数,移出元素时触发leave函数。
            
            $('div').hover(function(){
                $(this).css({"width":"200px","height":"200px"});
            },function(){
                $(this).css({"width":"100px","height":"100px"});
            })

        事件解除绑定
        
                .bind 绑定   --------     unbind   解除绑定
                
                .off()    解除绑定
                
                
        trigger()
        
            trigger可为元素一次性绑定多个事件。

            $('button:first').click(function(){
                update($("div>span:first"))
            })
            
            $("button:last").click(function(){
                update($("div>span:last"))
                $('button:first').trigger('click');
            })
         
            function update(j) {
                var n = parseInt(j.html(), 10);
                j.html(n + 1);
            }

    动画
    
        show()     让元素显示
        
        hide()     让元素隐藏
        
        var flag = true;
        $('button').click(function(){
            if(flag){
                $('.box').hide();
            }else{
                $('.box').show();
            }
            flag = !flag;
        })
        
        
        
        fadeIn([arg])//提升已降低透明度的元素,直到显示;即“淡出”;

        fadeOut([arg])//降低元素透明度,直至隐藏,style值为"none";即 “淡入”
        
        var flag = true;
        $('button').click(function(){
            if(flag){
                $('div').fadeOut(10000);
            }else{
                $('div').fadeIn(5000);
            }
            flag = !flag;
        })
        
        
        slideUp()//元素由下到上缩短隐藏

        slideDown()//元素由上到下伸展
        
        var flag = true;
        $('button').click(function(){
            if(flag){
                $('div').slideUp(400);
            }else{
                $('div').slideDown(400);
            }
            flag = !flag;
        })

相关文章

网友评论

      本文标题:前端一周04 jQuery选择器、过滤器、DOM 操作、动画

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