• jQuery基础 浅析(含基本方法和选择器)


    1.jQueryDOM互相转换

    jQuery入库函数:$(document).ready(function(){})

                    $(function(){})

    $(“#btn”):jQuery存储的是DOM对象,相当于数组可以通过[ ]取出具有相同标记的DOM对象

    jQuery对象转换为DOM对象:$(“#btn”)[0]  或者  $(“#btn”).get(0),0表示索引号

    var btn=document.getElementById(“btn”);
    DOM对象转换为jQuery对象:$(btn)

    2.jQuery选择器

    ① 基本选择器

    (1) 标签选择器

    $(“li”).css(“background”,”pink”);

    (2) Id选择器

    $(“#id”).css(“fontSize”,”30px”);

    (3) 类选择器

    $(“.class”).css(“background”,”pink”);

    (4)交集选择器

    $(“li.class”).css(“background”,”pink”);给具有class类的li标签设置背景色

    (5) 并集选择器

    $(“li,div”).css(“background”,”pink”);同时给li和div标签设置背景色

    ② 层级选择器

    (1)子代选择器

    $(“#ulitem>li”). css(“background”,”pink”);选择指定父元素下面的指定子元素
    $(“#ulitem>.class”). css(“background”,”pink”);

    $(“.wrap>ul>li”). css(“background”,”pink”); 

    (2) 后代选择器

    find(“li”)

    $(“#Id(空格)li”). css(“background”,”pink”);选择指定祖先元素下面的后代元素包括子元素的子元素,都会被选上。可以跳级选择#Id>ul>li,可以选择到li

    (3)过滤选择器

    $(“li:odd”). css(“background”,”pink”);所有选择到的元素,索引号奇数选择器

    $(“li:even”). css(“background”,”pink”); 所有选择到的元素,索引号偶数选择器

    $(“li:eq(4)”). css(“fontSize”,”30px”); 所有选择到的元素,索引号相等选择器

    $(“.class > li”).eq(4). css(“fontSize”,”30px”); 索引号相等选择器,第二种方法

    $("#Id>li:eq(“+ index +”)”).show();index为动态改变索引号

    3.jQuery操作演示

    ① 样式属性设置

    (1) 同时设置多个样式

    $(“li”).css(

    {“background”:”pink” , ”fontSize”:”30px” , “color”:”green”}

    );    传入一个对象

    或者

    var cssStys = {“background”:”pink” , ”fontSize”:”30px” , “color”:”green”}

    $(“li”).(cssStys);

    (2) 类名操作

    a ) $(“div”).addClass(“box”)

    添加两个类名xxx.className = xxx.className + “box”;

    $(“div”).addClass(“xxx.className”)

    b ) $(“li”).removeClass(“box”) , 如果不传入参数,会移除所有类名

    ② 动态创建元素

    var aLink = $(‘<a href=”http://web.baidu.com”>百度</a>’);

    $(“div”).append(aLink);

    或者  $(“div”).append(‘<a href=”http://web.baidu.com”>百度</a>’);

    append(#Id);如果追加的是已经有的元素,会从元素原来的位置移除元素追加到当前需要追加元素的位置

    $(“div”).html(‘<a href=”http://web.baidu.com”>百度</a>’);清空原有元素,创建当前元素/内容

    ③ 获取宽高

    var height = $(#Id).css(“height”); height为string类型,值为如:200px

    计算宽高:parseInt(height);

    或者$(#Id).height();直接获取数值类型高度

    4 jQuery的事件对象

    $(“div”).on(“click” , “input” , function( event ){

         event.delegateTarget 表示:代理绑定事件的元素 ----->div

         event.currentTarget  表示:绑定事件的元素     ----->input

         event.target        表示:触发事件的元素,点击谁---->谁                                         

    })

    event.data                                     传递给事件处理程序的额外数据

    event.currentTarget                        等同于this

    event.pageX                                  鼠标相对于页面左边的位置

    event.target                                   触发事件源,不一定===this

    event.stopPropagation();               阻止事件冒泡

    event.preventDefault();             阻止默认行为

    event.type                                      事件类型:click,dbclick…

    event.which                                    鼠标的按键类型:左1 中2 右3

    event.keyCode                                键盘按键代码

    return false; // 同时具有阻止冒泡和阻止默认行为的功能

    this:哪个元素触发的事件,this就指向这个元素。

    5 隐式迭代

    设置操作

    $(“div”).css(“color” , “red”);

    给所有的div设置背景色为红色,自动进行循环遍历设置,不用再添加循环。

    $(“div”).css(“color”);

    获取属性时,只返回第一个div元素的背景色,相当于索引为[0],如果第一个元素没有这个属性,返回undefined

    6链式编程

    $(#Id).children(“ul”).children(“li”).css(“opacity”,0.5);

    $(#Id).parent(“li”).siblings(“li”).children(“div”).css(“opacity”,0.5);

    实现原理:通过构造函数创建对象,同时return this;

    构造函数:function person (){

            this.name = “Tom”;

            this.age = 18;

            this.sayHello = function(){

            console.log(this.name);

            return this;}

            this.addAge = function(){

            this.age++;

            console.log(this.age)

            return this;}

          }

    创建对象: var person = new person( );

    调用person.sayHello().addAge();实现链式编程

    end():结束当前链最近的一次过滤操作,恢复链式编程被修改之前的一个状态

    $(“div > ul”).text().prevAll(“li”).text().end()   此时返回的this为”ul”

    7.jQuery 基本方法

    parent():父元素选择

    children():子元素选择

    mouseenter():鼠标进入

    parents():祖先元素选择

    next():获取紧挨下一个元素 

    mouseleave():鼠标离开

    css(“fontSize”):获取样式

    siblings():获取兄弟元素  

    css(“attr”,value):改变style

    find(“li”):选择指定后代元素 注释:find()括号中必须传入元素

    focus():获取焦点

    blur():失去焦点

    dbclick():双击事件

    change():改变事件

    keydown():键盘按下事件

    click():单击事件

    addClass(“class”):添加类名

    removeClass():移除类名 

    hasClass():判断是否有类名

    toggleClass()[1]:判断是否有类名,有就移除没有就添加

    fadeIn():淡入动画  

    index():获取元素索引号

    show(num): 展示动画

    slideDown():划入动画效果

    fadeout():淡出动画

    hide(num):隐藏动画

    slideUp():划出动画效果 

    fadeTo(200,0.5):淡到动画

    fadeToggle():似toggleClass()

    slideToggle():似toggleClass()

    animate():自定义动画

    stop():停止动画

    append():在后面追加元素

    empty():清空元素 

    html(“”):清空元素

    element.appendTo(node): element元素往node元素中添加

    prepend():向前添加元素

    remove():移除元素

    clone():复制元素,返回一个jQuery对象

    after():在当前元素后面添加

    before():在当前元素前添加

    attr():获取、设置属性

    html():获取html

    text():获取纯文本内容

    val():获取文本值

    stopPropagation():阻止冒泡

    preventDefault():阻止默认行为  

    height():获取高度,数值型 

    width():获取宽度,数值型

    scrollTop():被卷去头部

    scrollLeft():被卷去左部

       

    prop():设置属性,主要应用设置checked,selected,disabled,等动态改变的属性,用法与attr()相同

    offset({top:100,left:100}):获取、设置相对页面左上角位置,获取设置结果为对象如{top:100,left:100} 

    如果元素有定位,不设置定位,如果没有定位,会被设置position:relative

    bind({“click mouseenter”,function(){}})[2]:可同时绑定多个事件,不能给动态创建元素绑定事件

    $(“ul”).delegate(“li” , ”click” , function() {alert(“事件绑定”)}): 给动态创建元素绑定事件,机理:给父元素绑定事件,子元素可以触发事件,事件冒泡机制。

    on()[3]:即可给原本存在元素绑定事件,也可给动态创建元素绑定事件,zepto手机端通用

    unbind():解除bind()绑定事件,不常用

    undelegate():解除delegate()绑定事件,不常用

    off(“click”):解除绑定事件,全部都解除

    off(“click” , “**”):解除动态绑定事件,自身绑定事件还存在

    trigger(“focus”):触发事件,即触发已经绑定的事件,会触发浏览器的默认行为

    triggerHander(“focus”):触发事件,即触发已经绑定的事件,不会触发浏览器的默认行为

    prevAll():获取指定元素之前的所有元素

     nextAll():获取指定元素之后的所有元素

    end():结束当前链最近的一次过滤操作,恢复链式编程被修改之前的一个状态

    each(function(index,ele){})[4]:循环设置每个元素,包含index,ele两个参数

    8.jQuery属性

    ① length属性解析

    .length :获取匹配元素的个数,不是方法是jQuery属性

    $(#Id).find(“:checkbox”).length,表示所有type = checkbox的input的个数

    ② jQuery多库共存

    $.noConflict(): 让jQuery释放对$的控制,$.noConflict():需要放到最上部

    释放$后调用jQuery------

     jQuery(function(){

      jQuery(“btn”).click(function(){

        alert(123)

      })

    })

    或者var j = $.noConflict(); 之后使用j  j(function(){   })

    ③  jQuery插件制作

    $.fn.changeBg = function(){  }

    changeBg为函数名,$.fn.changeBg 为固定写法

    9.jQuery方法可行特性分析

    ① 鼠标触碰排他事件:

    $(“.class > li”).mouseenter(function(){

        $(this).addClass(“className”).siblings(“li”).removeClass(“className”)

    })

    ② show()动画效果

    Show(400) = show(“normal”)   Show(200) = show(“fast”)

    Show(600) = show(“slow”)

    Show (2000 , function () {

      alert(“动画执行完后,立即执行的回调函数”);

    })

    ③ animate()自定义动画实现只能改变单一数值属性 font,backgruond等效果无法实现

    $(“btn”).click(function(){

    $(“div”).animate(

      {“width”:”200px” , “height”:”200px” , “opacity”:0.4} , 2000 , function(){

        alert(“执行自定义动画”)

      })

    })

    ④ 通过选择器获取对象

    $(#Id).find(“:checkbox”).length    $(#Id).find(“:checkbox: checked”).length

    $(#Id).find(“:checked”).length

    ⑤ 键盘按下事件on(“keydown”)

    $(document).on(“keydown” , function(event){

        var keyCode = event.keyCode;

        $(“#Id”).text(keyCode);

        switch(keyCode){

          case  82:

              $(“#Id”).css(“background” , ”red”);

              Break;

          case  71:

          $(“#Id”).css(“background” , ”green”);

          Break;

        }

    })

    注释:

    [1]  toggleClass(“div”)实现原理:

    if($(“div”).hasClass(“box”)) {

        $(“div”).removeClass(“box”);

        }  else  {

        $(“div”).addClass(“box”);

    }

    [2]  bind({ })实现:

    ①$(#Id).bind ( {

        “click” : function(){ alert(“被点击了”) },

        “mouseenter” : function(){“鼠标进入了”}

     })

    ②$(#Id).bind (

        “click mouseenter”,function(){

        i++;

        alert( i );

       })   alert(1) , alert(2)

    [3] 给原本存在元素绑定事件:

    $(#Id).on(

        “click mouseenter”,function(){

        i++;

        alert( i );}))

    给动态创建元素绑定事件:

    $(“ul”).on( “click” , ”li” , function(){alert(“事件绑定”) } )

    [4] each()方法使用,例:给10给li设置透明度

       $(“li”).each(function(index,ele){  

        index表示当前元素的索引号

         ele表示当前元素

             var p = (index + 1)/10;

             $(ele).css(“opacity” , p)

      })  

  • 相关阅读:
    objectForKey与valueForKey在NSDictionary中的差异 转发
    客户需求
    Linked to SAP CRM
    测试
    同学们,没事就练习打字吧
    WebCast下载利器iReaper新版发布
    转载一篇帖子《我对软件应聘学生的建议》
    建议ASP.NET Web开发新手学习的几个基础框架
    一般CSS元素及文件命名方法
    Thinkpad T60入手,爱机S41出售
  • 原文地址:https://www.cnblogs.com/Tabb/p/6499053.html
Copyright © 2020-2023  润新知