美文网首页
jQuery相关API总结

jQuery相关API总结

作者: Lins7 | 来源:发表于2018-07-27 18:43 被阅读0次

    JQ操作DOM属性节点相关方法(包含类的操作)

    属性节点就是指dom元素的属性

    一般如果是标签自身自带的属性,我们用prop方法来获取;如果是自定义的属性,我们用attr方法来获取。

    1、attr

    作用:获取或者设置属性节点的值

    如果传递1个参数,代表获取属性节点的值

    如果传递2个参数,代表设置属性节点的值

    注意点:

        如果是获取:无论找到多少个元素,都只会返回第一个元素指定的属性节点的值

        console.log($("span").attr("class"))

        如果是设置:找到多少个元素就会设置多少个元素

        $("span").attr("class","box")

    2、romoveAttr

    作用:删除属性节点

    注意点:

        ①会删除所有找到元素指定的属性节点

        ②属性节点的名称可以用空格隔开,同时删除多个属性节点

          $("span").removeAttr("class name")

    JQ操作dom对象指定属性的方法(还能查找或者修改属性节点)

    1、prop方法

    作用:获取或者设置dom对象 属性的值

    如果传递1个参数,代表获取属性的值

    如果传递2个参数,代表设置属性的值

    注意点:

        ①prop方法不仅能操作属性,还能操作属性节点(前提是该值是本来就存在的dom元素属性节点)

        ② 例子:

                $("input").prop("checked")  // true 或者 false

                $("input").attr("checked")  // checked 或者 undefined           

    2、removeProp方法

    作用:删除属性

    操作dom的类:

    1、addClass

    作用:添加一个类

    如果需要添加多个,多个类名之间添加空格

    $("div").addClass("class1 class2")

    2、removeClass

    作用:删除一个类

    如果需要删除多个,多个类名之间添加空格

    $("div").removeClass("class1 class2")

    3、toggleClass

    作用:切换类(有就删除,没有就添加)

    $("div").toggleClass("class1 class2")

    JQ操作元素html文本或者text文本的方法

    1、html

    作用:给指定的标签内加入HTML代码,与原生JS的innerHTML一样

    给div插入html代码   

    $("div").html("

    我是段落

    ")

    获取div中的html代码

    $("div").html()

    2、text

    作用:给指定的标签内加入指定文本内容,与原生JS的innerText一样

    给div插入文本内容  

    $("div").text("

    我是段落

    ")

    获取div中的文本内容

    $("div").text()

    3、val

    作用:获取标签中value属性的值

    $("input").val("请输入内容")

    JQ获取或操作dom尺寸及位置的方法

    操作div尺寸的方法:

    width、height方法

        获取

        $(".content").width()

        直接获取到元素通过CSS设置的width宽度值(不包括边框宽度,标准模型下的width值)

        设置

        $(".content").width("100px")

        等同于在CSS中设置width:"100px"

    位置:

    offset方法:

    作用:获取或者设置,元素距离窗口的偏移位

    获取定位

     $(".content").offset().left

    获取该元素距离窗口偏移量中的左边偏移数值

    设置定位

     $(".content").offset({left:10})

    设置该元素距离窗口最左边只有10px距离

    position方法:

    作用:获取元素距离定位(子绝父相中对于父相中的偏移数值)元素的偏移位

     $(".content").position().left

    注意点:position方法只能获取不能设置,如果想设置可以直接使用css方法设置

    scrolltop方法:

    作用:获取或者设置元素当前滚动位置距离元素顶部的偏移位

    获取滚动偏移

    $(".scroll").scrollTop()

    设置滚动偏移

    $(".scroll").scrollTop(300)

    获取或者设置HTML当前页面的滚动偏移位

    获取

    $("html").scrollTop()+$("body").scrollTop()

    设置

    $("html,body").scrollTop(300)

    上面写法兼容新老浏览器版本


    JQ操作标签style样式相关方法

    CSS方法设置的样式,都是通过内嵌的形式设置到对应标签中的

    1、逐个设置

    $("div").css("width","100px")

    2、链式设置

    $("div").css("width","100px").css("width","200px")

    注意:链式操作不建议大于3步

    3、批量设置

    $("div").css(

    {

            width:"200px",

            height:"100px",

            background:"red"

    })

    JQ查询和筛选DOM相关方法

    筛选

    eq(index|-index)

    作用:获取第 index 或者 -index(集合倒数) 个元素,返回对应单个元素(该元素为JQ对象),元素初始位置为0,最后一个为 -1

    例子:

        $("p").eq(1)

    slice(start, [end])

    作用:获取一个集合(数组)中 start 到 end(如果不写end,默认到最后) 的元素集合(数组),返回 数组

    例子:

        $("p").slice(0, 1)

    hasClass(class)

    作用:检查当前的元素是否含有某个特定的 class,如果有,则返回true。

    例子:

        $("p").hasClass("protected")

    查找

    find(e|o|e)

    作用:在当前元素的所有后代中搜索,所有与指定表达式匹配的元素,返回 数组

    例子:

        $("p").find(".abc")

    parents([expr])

    作用:同find相反,当前元素的祖先中搜索,所有与指定表达式匹配的元素,返回 数组

    例子:

        $("p").parents(".abc")

    next([expr])

    作用:从当前元素同辈的下一个相邻元素中寻找,符合匹配条件的元素,返回 数组

    例子:  

    匹配p标签中下一个同辈元素的类名包含selected的元素

    $("p").next(".selected")

    结果:

    prev([expr])

    作用:同next相反,从当前元素同辈的上一个相邻元素中寻找,符合匹配条件的元素,返回 数组

    例子:

       $("p").prev(".selected")

    siblings([expr])

    作用:从当前元素的同辈元素中寻找除了自身以外,符合匹配规则的其他元素,返回 数组

    例子:

        $("p").siblings(".selected")

    JQ中AJAX及JSONP使用方法

    在jQuery里面,想要使用ajax及jsonp,需要使用如下方法:

    格式:

            $.ajax(

                {

                    name:value,

               name:value,

                    。。。

                }

            )

    常用的key:

        url:'/index.html' //表示发送请求的url,如果为空则默认当前页面当前url

        type:"GET" //表示本次请求使用的请求方法,默认是GET

        data:{a:'1',b:'2'} //表示本次request请求的body部分需要传递的数据,如果传入对象则自动解析成a=1&b=2

        success:()=>{} //表示请求成功后运行的回调函数

        error:()=>{} //表示请求失败后运行的回调函数

        contentType:"json" //表示request请求里面的content-type字段的内容

    dataType:"JSONP" //表示预计服务器响应的内容,当value的是JSONP的时候,则自动将ajax请求变成JSONP的get请求

        async:true //表示是否为异步请求,默认为true

        cache:true //表示是否缓存被请求的页面

        complete:()=>{} //表示请求完成后运行的回调函数(在success和error之后,无论有或者无)

        contentType:"text/javascript" //表示request的body内容

    用例:

    发送POST请求

           $.ajax({

                //提交数据的类型 POST GET

                type:"POST",

                //提交的网址

                url:"testLogin.aspx",

                //提交的数据

                data:{Name:"sanmao",Password:"sanmaoword"},

                //返回数据的格式

                datatype: "html",//"xml", "html", "script", "json", "jsonp", "text".

                //在请求之前调用的函数

                beforeSend:function(){$("#msg").html("logining");},

                //成功返回之后调用的函数             

                success:function(data){

               $("#msg").html(decodeURI(data));            

                }   ,

                //调用执行后调用的函数

                complete: function(XMLHttpRequest, textStatus){

                   alert(XMLHttpRequest.responseText);

                   alert(textStatus);

                    //HideLoading();

                },

                //调用出错执行的函数

                error: function(){

                    //请求出错处理

                }         

             });

    JQ事件绑定以及事件委托绑定

    on替代bind方法

        on可以替代bind方法,使用方法和bind一致

        // 绑定单个事件

        $(":button").on("click",function(){

            alert("on");

        });

        // 传递数据

        $(":button").on("click",{name:"tom"},function(e){

                alert(e.data.name);

        });

        // 绑定多个事件

        $(":button").on("mouseover mouseout",function(e){

                alert("移入移出");

        });

        // 使用对象绑定多个事件

        $(":button").on({

            mouseover:function(){

                alert("移入");

            },

            mouseout:function(){

                alert("移出");

            }

        });

    // 阻止冒泡和默认行为

    $(":submit").on("click",function(e){

        e.preventDefault();

        e.stopPropagation();

        alert("取消默认行为和冒泡");

        });

    off替代unbind方法

      off可以替代unbind方法,使用方法不变

    例子:

        function test(){

                alert("test");

            }

        $(":button").on("click.on",test);//根据函数解除绑定

        $(":button").off("click");// 根据事件解除绑定

        $(":button").off("click.on");// 根据命名空间解除绑定


    事件委托

        实际上是给祖先绑定一个事件。子元素通过冒泡将事传递到祖先元素,祖先元素再判断点击的是不是button,如果是,就执行相同的事件。因此,当有很多个相同的按钮需要绑定相同的事件时,可以用事件委托将事件委托给祖先节点,有祖先节点判断子节点是否执行某事件。如果不适用事假委托,那个每一个节点都需要绑定一个事件。 

    使用方法是: 

        祖先节点.on(“事件”,”子元素选择器”,”绑定的函数”);

        on的第二个参数需要写成所有相同元素通用的写法,不能写成:button:eq(0)这样的选择不具有通用性,祖先节点在判断的时候会无法达到预期的效果。

    例子:

        $("div:eq(0)").on("click",":button",function(){

                $(this).clone(true).appendTo("div:eq(0)");

          });

        // 换成document也可:

        $(document).on("click",":button",function(){

            $(this).clone(true).appendTo("div:eq(0)");

        });

    取消委托

    off函数还可以取消委托,取消委托必须由祖先节点调用调用方法是: 

        祖先节点.off(“事件”,”子元素”);

        $("div:eq(0)").off('click','.button');


    one()

    绑定元素执行完毕后自动移除事件,可以方法仅触发一次的事件。

    例子:

      $(":button").one("click",function(){

            alert("one");

        });

    用到的方法

        clone()

    生成被选元素的副本,包含子节点、文本和属性。 

    $(selector).clone(includeEvents)

        - includeEvents 规定是否复制元素的所有事件处理。true/false,默认是false

        appendTo()

    在被选元素的结尾(仍然在内部)插入指定内容。

        $("button").click(function(){

            $("sss").appendTo("p");

        });

    JQ事件自动触发

    trigger方法:

    例子:

        $(".son").trigger("click")

    特点:

        ①、如果使用trigger自动触发事件,会触发事件冒泡(父元素会被点击)

        ②、会触发默认行为(比如点击a标签,默认行为就是跳转到a的url地址,点击button提交表单就会自动提交表单数据)

    triggerHandler方法:

    例子:

            $(".son").trigger("click")

    特点:

    ①、如果利用triggerHandler自动触发事件,不会触发事件冒泡(父元素不会被点击)

         ②、不会触发默认行为

    注意:

        a标签比较特殊,使用trigger无法自动触发a标签的默认行为,但是可以在a标签里嵌套其他标签,使用trigger触发事件冒泡则可以实现触发a标签的默认行为。


    JQ的遍历的方法(支持伪数组)

    1、利用jquery的each静态方法遍历数组

    使用方法:

        $.each(Array,function( index, value){})

    Array:

        可以是真数组,也可以是伪数组,都可以进行遍历

    传入回调函数的参数:

        第一个参数:遍历到的索引

        第二个参数:遍历到的元素

    另一种使用jq实例方法调用each方法(遍历Jq对象$('.list_music .list_number'),只需要传入回调函数):

        $('.list_music .list_number').each(function(a,b){

            console.log(a,b)

        })

    注意点:

        使用each方法最后返回传递进去的数组,无法在回调函数中对该数组进行操作。

    2、利用jquery的map静态方法遍历数组

    使用方法:

        $.map(Array,function( value, index ){})

    Array:

        可以是真数组,也可以是伪数组,都可以进行遍历

    传入回调函数的参数:

        第一个参数:遍历到的索引

        第二个参数:遍历到的元素

    另一种使用jq实例方法调用map方法(遍历Jq对象$('.list_music .list_number'),只需要传入回调函数):

        $('.list_music .list_number').map(function(a,b){

            console.log(a,b)

        })

    注意点:

        使用map方法最后返回空数组,如果在回调函数中使用return可以对返回的数组进行操作。

    JQ的显示效果(动画效果)

    显示(相当于给元素 display:inline-block 的过程中,增加动画效果):

    格式:

        show([ speed , [easing] , [fn] ])

    speed:执行完动画的时长,毫秒为单位 1000毫秒 = 1秒

            easing:指定动画过程的速度,默认是 swing(匀速直线),可以选 linear(变速运动)

            fn:动画执行完后会执行该回调函数

    例子:

        $('div').show(1000,function(){})

    隐藏(相当于给元素display:none的过程中,增加动画效果)

    格式:

        hide([speed,[easing],[fn]])

            speed:执行完动画的时长,毫秒为单位 1000毫秒 = 1秒

            easing:指定动画过程的速度,默认是 swing(匀速直线),可以选 linear(变速运动)

            fn:动画执行完后会执行该回调函数    

    例子:

        $('div').hide(1000,function(){})

    切换(如果元素本来是显示的,则执行hide,本来是隐藏的,则执行show)

    格式:

        toggle([speed,[easing],[fn]])

            speed:执行完动画的时长,毫秒为单位 1000毫秒 = 1秒

            easing:指定动画过程的速度,默认是 swing(匀速直线),可以选 linear(变速运动)

            fn:动画执行完后会执行该回调函数    

    展开(相当于给元素 display:inline-block 的过程中,增加动画效果,与显示不同的是动画特效不同,动画效果是通过从上到下增加高度展开对应标签内容):

    格式:

    slideDown([ speed , [easing] , [fn] ])

            speed:执行完动画的时长,毫秒为单位 1000毫秒 = 1秒

            easing:指定动画过程的速度,默认是 swing(匀速直线),可以选 linear(变速运动)

            fn:动画执行完后会执行该回调函数

    例子:

        $('div').slideDown(1000,function(){})

    收起(相当于给元素display:none 的过程中,增加动画效果,与隐藏不同的是动画特效不同,动画效果是通过从下到上减小高度收起对应标签内容):

    格式:

    slideUp([ speed , [easing] , [fn] ])

            speed:执行完动画的时长,毫秒为单位 1000毫秒 = 1秒

            easing:指定动画过程的速度,默认是 swing(匀速直线),可以选 linear(变速运动)

            fn:动画执行完后会执行该回调函数

    例子:

    $('div').slideUp(1000,function(){})

    停止动画(停止正在执行的动画,并将动画队列清空)

    格式:

    stop([clearQueue],[jumpToEnd])

            clearQueue:如果设置成true,则清空队列。可以立即结束动画。

            jumpToEnd:如果设置成true,则完成队列。可以立即完成动画。

    例子:

        $('div').stop()

    延时动画(延迟链式变成中间的动画时间)

    例子:

        $('div').animate([width:500],1000).delay(2000).animate([height:500],1000)

        上面意思:先执行宽度变为500的动画效果,再执行延时动画2秒,最后执行高度500的动画效果

    淡入(相当于给元素 display:inline-block 的过程中,增加动画效果,与显示和展开不同的是动画特效不同,动画效果是逐渐减小透明度动态的显示元素):

    格式:

    fadeIn([ speed , [easing] , [fn] ])

            speed:执行完动画的时长,毫秒为单位 1000毫秒 = 1秒

            easing:指定动画过程的速度,默认是 swing(匀速直线),可以选 linear(变速运动)

           fn:动画执行完后会执行该回调函数

    例子:

    $('div').fadeIn(1000,function(){})

    淡出(相当于给元素display:none 的过程中,增加动画效果,与隐藏不同的是动画特效不同,动画效果是通过从下到上减小高度收起对应标签内容):

    格式:

    fadeOut([ speed , [easing] , [fn] ])

            speed:执行完动画的时长,毫秒为单位 1000毫秒 = 1秒

            easing:指定动画过程的速度,默认是 swing(匀速直线),可以选 linear(变速运动)

           fn:动画执行完后会执行该回调函数

    例子:

    $('div').fadeOut(1000,function(){})

    淡入淡出切换(如果元素本来是显示的,则执行淡出,本来是隐藏的,则执行淡入)

    格式:

    fadeToggle([ speed , [easing] , [fn] ])

            speed:执行完动画的时长,毫秒为单位 1000毫秒 = 1秒

            easing:指定动画过程的速度,默认是 swing(匀速直线),可以选 linear(变速运动)

           fn:动画执行完后会执行该回调函数

    例子:

    $('div').fadeToggle(1000,function(){})

    淡入到(相当如 淡入 ,唯一不同是 淡入到 可以设置元素最终显示的透明度)

    格式:

    fadeTo([ [ speed ] , opacity , [ easing ] , [ fn ]] )        

            speed:执行完动画的时长,毫秒为单位 1000毫秒 = 1秒

            opacity:元素最终显示的透明度,1是不透明,0是完全透明

            easing:指定动画过程的速度,默认是 swing(匀速直线),可以选 linear(变速运动)

           fn:动画执行完后会执行该回调函数

    例子:

    $('div').fadeTo(1000, 0.5, function(){})

    自定义(CSS改变任何属性都能增加动画效果)

    格式:

    animate( params ,[ speed ],[ easing ],[ fn ])

            params:元素变化的CSS指令,用一个{}(对象包裹起来)

            speed:执行完动画的时长,毫秒为单位 1000毫秒 = 1秒

            easing:指定动画过程的速度,默认是 swing(匀速直线),可以选 linear(变速运动)

           fn:动画执行完后会执行该回调函数

    例子:

    $('div').animate( { marginLeft:500 }, 1000, function(){})

    自定义动画的累加属性

    使用方法:

        $('div').animate({ width:"+=100" },1000)

        上面意思为:每次执行该方法都会在原来元素的宽度上累加100像素

    自定义动画的关键字属性

    使用方法:

        $('div').animate({ width:"hide" },1000)

        上面意思为:执行该方法后会让元素达到隐藏的效果,动画则是从左到右逐渐减少宽度,最终元素隐藏

        $('div').animate({ width:"toggle" },1000)

        上面意思为:执行该方法后会让元素原本有宽度,变到没有宽度,元素原本没有宽度,变到有宽度。

    相关文章

      网友评论

          本文标题:jQuery相关API总结

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