zoukankan      html  css  js  c++  java
  • 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)

      })  

  • 相关阅读:
    HDU 2955 Robberies(01背包)
    HDU 2602 Bone Collector(01背包)
    HUST 1352 Repetitions of Substrings(字符串)
    HUST 1358 Uiwurerirexb jeqvad(模拟解密)
    HUST 1404 Hamming Distance(字符串)
    HDU 4520 小Q系列故事――最佳裁判(STL)
    HDU 2058 The sum problem(枚举)
    【破解】修改程序版权、添加弹窗
    HDU 1407 测试你是否和LTC水平一样高(枚举)
    HDU 1050 Moving Tables(贪心)
  • 原文地址:https://www.cnblogs.com/Tabb/p/6499053.html
Copyright © 2011-2022 走看看