JQuery高级操作详解

Posted LL.LEBRON

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JQuery高级操作详解相关的知识,希望对你有一定的参考价值。

JQuery高级操作详解

1.动画

三种方式显示和隐藏元素:

  1. 默认显示和隐藏方式

    1. show([speed,[easing],[fn]])。(显示)
    2. hide([speed,[easing],[fn]])。(隐藏)
    3. toggle([speed,[easing],[fn]])。(在显示和隐藏之间切换)

    三个参数:

    1.speed:动画的速度。三个预定义的值(“slow”,“normal”, “fast”)或表示动画时长的毫秒数值(如:1000)。
    2.easing:用来指定切换效果,默认是"swing",可用参数"linear"。
    swing:动画执行时效果是 先慢,中间快,最后又慢。
    linear:动画执行时速度是匀速的。
    3.fn:在动画完成时执行的函数,每个元素执行一次。

  2. 滑动显示和隐藏方式

    1. slideDown([speed],[easing],[fn])
    2. slideUp([speed,[easing],[fn]])
    3. slideToggle([speed],[easing],[fn])
  3. 淡入淡出显示和隐藏方式

    1. fadeIn([speed],[easing],[fn])
    2. fadeOut([speed],[easing],[fn])
    3. fadeToggle([speed,[easing],[fn]])

案例:建议自己敲一遍,以后用的时候查就行

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <script type="text/javascript" src="../js/jquery-3.3.1.min.js"></script>
    <script>
        function hideFn() {
            $("#showDiv").fadeOut("slow", "swing");
        }

        function showFn() {
            $("#showDiv").fadeIn(5000, "linear");
        }

        function toggleFn() {
            $("#showDiv").toggle("slow");
        }
    </script>
</head>
<body>
<input type="button" value="点击按钮隐藏div" onclick="hideFn()">
<input type="button" value="点击按钮显示div" onclick="showFn()">
<input type="button" value="点击按钮切换div显示和隐藏" onclick="toggleFn()">

<div id="showDiv" style="width:300px;height:300px;background:pink">
    div显示和隐藏
</div>
</body>
332
</html>

2.遍历

  1. js的遍历方式:for(初始化值;循环结束条件;步长)
  2. jq的遍历方式:
    1. jq对象.each(callback)
      1. jquery对象.each(function(index,element){});
        • index:就是元素在集合中的索引
        • element:就是集合中的每一个元素对象
        • this:集合中的每一个元素对象
      2. 回调函数返回值:
        • true:如果当前function返回为false,则结束循环(break)
        • false:如果当前function返回为true,则结束本次循环,继续下次循环(continue)
    2. $.each(object, [callback])
    3. for..of: jquery

例子:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="../js/jquery-3.3.1.min.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript">
        $(function () {
            var citys = $("#city li");
            //1:for(初始化值;循环结束条件;步长)
            for (var i = 0; i < citys.length; i++) {
                alert(i + ":" + citys[i].innerHTML);
            }
            //2:jq对象.each(callback)
            citys.each(function (index, element) {
                alert(this.innerHTML);
                alert($(this).html());
                alert(index + ":" + element.innerHTML);
                alert(index + ":" + $(element).html());
                if ("上海" == $(element).html()) {
                    return true;
                }
            })
            //3:$.each(object, [callback])
            $.each(citys, function () {
                alert($(this).html());
            })
            //4:for..of: jquery
            for (li of citys) {
                alert($(li).html());
            }
        })
    </script>
</head>
<body>
<ul id="city">
    <li>北京</li>
    <li>上海</li>
    <li>天津</li>
    <li>重庆</li>
</ul>
</body>
</html>

3.事件绑定

  1. jquery标准的绑定方式

    • jq对象.事件方法(回调函数);

      注:如果调用事件方法,不传递回调函数,则会触发浏览器默认行为。

    • 表单对象.submit();//让表单提交

  2. on绑定事件/off解除绑定

    • jq对象.on("事件名称",回调函数)

    • jq对象.off("事件名称")

      注:如果off方法不传递任何参数,则将组件上的所有事件全部解绑。

  3. 事件切换:toggle

    • jq对象.toggle(fn1,fn2...)

      当单击jq对象对应的组件后,会执行fn1.第二次点击会执行fn2…

4.插件

插件:增强JQuery的功能。

实现方式:

  1. $.fn.extend(object)
    增强通过Jquery获取的对象的功能。

    栗子:

    
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>01-jQuery对象进行方法扩展</title>
        <script src="../js/jquery-3.3.1.min.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript">
           //使用jquery插件 给jq对象添加2个方法 check()选中所有复选框,uncheck()取消选中所有复选框
            //1.定义jqeury的对象插件
            $.fn.extend({
                //定义了一个check()方法。所有的jq对象都可以调用该方法
                check:function () {
                   //让复选框选中
    
                    //this:调用该方法的jq对象
                    this.prop("checked",true);
                },
                uncheck:function () {
                    //让复选框不选中
    
                    this.prop("checked",false);
                }
                
            });
    
            $(function () {
               // 获取按钮
                //$("#btn-check").check();
                //复选框对象.check();
    
                $("#btn-check").click(function () {
                    //获取复选框对象
                    $("input[type='checkbox']").check();
    
                });
    
                $("#btn-uncheck").click(function () {
                    //获取复选框对象
                    $("input[type='checkbox']").uncheck();
    
                });
            });
        </script>
    </head>
    <body>
    <input id="btn-check" type="button" value="点击选中复选框" onclick="checkFn()">
    <input id="btn-uncheck" type="button" value="点击取消复选框选中" onclick="uncheckFn()">
    <br/>
    <input type="checkbox" value="football">足球
    <input type="checkbox" value="basketball">篮球
    <input type="checkbox" value="volleyball">排球
    
    </body>
    </html>
    
  2. $.extend(object)
    增强JQeury对象自身的功能。

    栗子:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>01-jQuery对象进行方法扩展</title>
        <script src="../js/jquery-3.3.1.min.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript">
            //对全局方法扩展2个方法,扩展min方法:求2个值的最小值;扩展max方法:求2个值最大值
            
            $.extend({
                max:function (a,b) {
                    //返回两数中的较大值
                    return a >= b ? a:b;
                },
                min:function (a,b) {
                    //返回两数中的较小值
                    return a <= b ? a:b;
                } 
            });
    
            //调用全局方法
            var max = $.max(4,3);
            //alert(max);
    
            var min = $.min(1,2);
            alert(min);
        </script>
    </head>
    <body>
    </body>
    </html>
    

最后喜欢的小伙伴别忘了一键三连哦🎈🎈🎈

以上是关于JQuery高级操作详解的主要内容,如果未能解决你的问题,请参考以下文章

(高级篇)jQuery学习之jQuery Ajax用法详解

jQuery高级Ajax

jquery基本操作

JQuery基础操作超详解✨

jQuery应用 代码片段

高级前端:详解手写原生Ajax的实现