首页 > 代码库 > 论如何把JS踩在脚下 —— JQuery基础及Ajax请求详解

论如何把JS踩在脚下 —— JQuery基础及Ajax请求详解

一、什么是JQuery?

JQuery是一种JavaScript框架,是一堆大神搞出来的能够让前端程序猿敲更少代码、实现更多功能的工具(在此,跪谢各位JQuery开发大大们!!!)。JQuery的使用给优化HTML文档操作、事件处理、动画设计和Ajax交互提供了巨大的便利。而且,其特有的链式语法也较与JS更为清晰。

二、JQuery入门

想要使用JQuery框架,就必须在html文档中导入JQuery插件,导入方式和日常导入外部JS文件的方式是相同的。但要注意,在同一html文档中插入多个外部JS文件是一定要格外注意引入的位置与不同文件的顺序!!!JQuery官方下载地址在这里,宣传费就不用给了:http://jquery.com/

下面我们就以代码的形式来了解一下JQuery的语法与部分注意事项。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>JQuery笔记</title>
        
        <script language="JavaScript" src="http://www.mamicode.com/js/jquery-1.10.2.js"></script>
        
    </head>
    
    <body>
        
        <p name="p" id="p">这是P1标签的文字</p>
        
        <p>这是P2标签的文字</p>
        
        <p>这是P3标签的文字</p>
        
        <select id="select">
            <option>123</option>
            <option>456</option>
            <option>789</option>
        </select>
        
        <input type="checkbox" value="http://www.mamicode.com/1" />1
        <input type="checkbox" value="http://www.mamicode.com/2" />2
        <input type="checkbox" value="http://www.mamicode.com/3" />3
        <input type="checkbox" value="http://www.mamicode.com/4" />4
        
        
    </body>
    
    <script type="text/javascript">
    
        //JQuery语法
            //1、jQuery("选择器").action();通过选择器调用事件函数
            //        但jQuery中,jQuery可以用$代替,即$("选择器").action();
                //①选择器可以直接使用css选择器,选中元素;
                //②.action()表示对元素执行的操作;
            //2、文档就绪函数:防止文档在完全加载(就绪)之前运行jQuery代码
                //        $(document).ready(function(){
                //            // JQuery代码
                //        });
            
                //        $(function(){
                //            //文档就绪函数的简写方式
                //        });
                    
                //[文档就绪函数 与 window.onload 区别]
                //①    window.onload需要在网页所有内容加载完成后执行(包括图片和音频);
                //        文档就绪函数,只需要在网页DOM结构加载以后便执行。
                //②    window.onload只能写一个,写多个只会执行最后一个;
                //        文档就绪函数,可以写多个,也不会被覆盖。
                
            //3、JQuery对象与原生DOM对象互转
                //①    原生DOM对象转JQuery对象:$(DOM对象)
                    //        var p = document.getElementsByTagName("p");
                    //        $(p);
                //② JQuery对象转原生DOM对象:$("p").get(0) 或 $("p")[0]
                    //        $("p").get(0).style.color = "#00ff00";
        
        $("p").hide();
        $("p").fadeIn(5000);
        
        $("#select").val(["123"]);
        $("input[type=‘checkbox‘]").val(["1","2","3","4"])
        
        $("#p").attr({"name":"pppppppp","class":"aaa"})
    </script>
    
</html>

三、JQuery中的事件与动画

JQuery在前端开发中带给我们很多便利,其中就有其自带的部分动画与事件,下面是这一部分比较常用的代码讲解。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>笔记-JQuery事件与动画</title>
        
        <script src="http://www.mamicode.com/js/jquery-1.10.2.js" language="JavaScript"></script>
        
        <style type="text/css">
            
            p{
                width: 50px;
                height: 50px;
                background-color: #00FFFF;
            }
            div{
                width: 150px;
                height: 75px;
                color: #FFFFFF;
                background-color: #00FFFF;
                text-align: center;
                line-height: 75px ;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
            }
            
        </style>
        
    </head>
    <body>
        
        <button>点击我触发事件</button>
        <p>12345</p>
        <div style="display: none;" id="div1">这个原来是隐藏的div</div>
        <div id="div2">这个是显示的div</div>
        
    </body>
    
        <script type="text/javascript">
            
            //    事件绑定快捷方式
//            $("button:first").click(function(){
//                alert("1");
//            })
        
            //使用on绑定事件
            //① 使用on进行单事件绑定
//            $("button:first").on("click",function(){
//                console.log($(this).html());
//            })
            //② 使用on同时为多个事件,绑定同一函数
//            $("button:first").on("click mouseover",function(){
//                console.log($(this).html());
//            })
            //③ 调用函数时,传入自定义参数
//            $("button:first").on("click",{name:"wk"},function(event){
//                //使用event.data.属性名 找到传入的参数
//                console.log(event.data.name);
//            })
            //④ 使用on进行多事件多函数绑定
//            $("button:first").on({
//                click:function(){
//                    console.log("click");
//                },
//                mouseover:function(){
//                    console.log("mouseover");
//                }
//            })
            //⑤ 使用on进行事件委派
                //>>>将原本需要绑定到某元素上的事件改为绑定在父元素乃至根节点上,然后委派给当前元素生效
                //>>>作用:默认的绑定方式,只能绑定到页面初始时已有的元素,当页面新增p元素时,无法绑定到新元素上;
                //                    使用事件委派方式,当页面新增元素时,可以为所有新元素绑定事件
//            $("body").on("click","button",function(){
//                alert("1");
//            })
//            $("button").on("click",function(){
//                var p = $("<p>44444</p>");
//                $("p").after(p);
//            })
//            $(document).on("click","p",function(){
//                alert(1);
//            })

            //off 取消事件绑定
            //1、$("p").off() 取消所有事件
            //2、$("p").off("click") 取消点击事件
            //3、$("p").off("click mouseover") 取消多个事件
            //4、$(document).off("click","p") 取消事件委派
            
            //one 绑定唯一一次事件
//            $("button").one("click",function(){
//                alert(1);
//            })

            //trigger 自动触发某元素的事件
//            $("p").click(function(event,arg1,arg2){
//                alert("触发了p的click事件"+arg1+arg2);
//            })
//            $("button").click(function(){
//                $("p").trigger("click",["呵呵呵","哈哈哈"]);//触发事件时,传递参数
//            })

            //动画效果

            // .show():让隐藏元素显示,效果为同时修改元素的宽度,高度,opacity属性
                //① 不传参数,让隐藏的元素直接显示,不进行动画
                //② 传入时间,多少毫秒之内完成动画
                //③ 传入时间、函数,完成动画之后完成回调函数
            // .hidden():让显示元素隐藏,与show相反
//            $("#div1").show(1000,function(){
//                alert("动画")
//            });
//            $("#div2").hide(1000);
            
            // .slideDown():让隐藏元素显示,效果为从上往下增加高度
            // .slideUp():让显示元素隐藏,效果为从下往上减小高度    
            // .slideToggle():让隐藏元素显示,让隐藏的显示
            
            //.fadeIn():让隐藏元素显示,淡入
            //.fadeOut():让显示元素隐藏,淡出
            //.fadeToggle():让隐藏元素显示,让隐藏的显示,淡入、淡出
            //.fadeTo(时间,透明度,函数):让隐藏元素显示,让隐藏的显示,淡入、淡出,但是多了必选的透明度参数,可以指定显示的最终透明度
//            $("#div1").fadeIn(1000,function(){
//                alert("动画")
//            });
//            $("#div2").fadeOut(1000,function(){
//                alert("动画")
//            });

            //.animate({最终的样式属性键值对},动画时间,动画效果linear和swing,回调函数):自定义动画
//            $("#div2").animate({
//                width:"150px",
//                opacity:"0"
//            },2000,"linear")

        </script>
        
</html>

四、Ajax请求

哈哈哈,重头戏来了。Ajax请求是JQuery给我们带来的最大最大的福利,通过Ajax,我们可以免除很多不必要的工作,下面依然是这一部分重点的讲解,虽然内容很少,但是其精华就在于其中小小一部分

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>JQuery高级Ajax</title>
        
        <script language="JavaScript" src="http://www.mamicode.com/js/jquery-1.10.2.js"></script>
                
        <script type="text/javascript">

            $(function(){
                
                //JSON对象
                
                    //1、JSON对象时键值对的集合,键与值间用":"分割,多个键值对之间用","分割;
                    //2、多个JSON对象,可以放到数组中去;JSON对象和数组可以相互嵌套;
                    
                    //JSON对象的键必须是字符串
                
                $("button").click(function(){
                    
                      $.ajax({
                        type:"post",
                        url:"http://192.168.4.172:8080/json/h51701.json",
                        dataType:"JSON",
                        success:function(data){
//                            console.log(data);
                            $("div").html(data[0].age);
                        }
                    });
                    
                })
                
                
            })
            
        </script>
        
    </head>
    <body>
        
        <button>点击请求JSON文件</button>
        
        <div></div>
        
    </body>
</html>



论如何把JS踩在脚下 —— JQuery基础及Ajax请求详解