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

学习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;
        })
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,311评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,339评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,671评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,252评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,253评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,031评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,340评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,973评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,466评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,937评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,039评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,701评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,254评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,259评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,497评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,786评论 2 345

推荐阅读更多精彩内容

  • jQuery基础 什么是JQ?一个优秀的JS库,大型开发必备JQ的好处?一简化JS的复杂操作二不再需要关心兼容性三...
    幺七阅读 935评论 0 2
  • 前言: jQuery的使用需要有JavaScript基础,则否你将很难理解操作的目的. 问题一: j...
    info_gu阅读 1,003评论 0 1
  • 内容回顾 JS开发步骤确定事件(onclick鼠标点击事件,onsubmit表单的提交事件,onload页面加载完...
    chcvn阅读 487评论 0 3
  • 内容回顾 jQuery的书写步骤引入JQ的包(xxx.js)书写JQ代码$(function(){ JQ代码...
    chcvn阅读 536评论 0 5
  • 如果有一天,再也说不出一句话,我不会为此感到痛苦。别人的话已经够多了,这世界缺少的也许是耳朵。 心性好静,一度认为...
    卜悠悠阅读 390评论 0 1