jQuery基础

jQuery 是一个 JavaScript 库。

jQuery 极大地简化了 JavaScript 编程。

一、jQuery库包含以下功能:

  • HTML 元素选取
  • HTML 元素操作
  • CSS 操作
  • HTML 事件函数
  • JavaScript 特效和动画
  • HTML DOM 遍历和修改
  • AJAX
  • Utilities

二、jQuery 安装:(jQuery的使用需要引入类库)

(1)从 jquery.com 下载 jQuery 库

选择自己需要的版本,我下载的开发版,右键链接另存为即可,下面写jQuery代码就可以直接引用了。

(2)从 CDN 中载入 jQuery, 如从 Google 中加载 jQuery(可以在菜鸟教程查看详细方法https://www.runoob.com/jquery/jquery-install.html

三、基础语法:

1、$(selector).action():

  • 美元符号定义 jQuery
  • 选择符(selector)"查询"和"查找" HTML 元素
  • jQuery 的 action() 执行对元素的操作

2、文档就绪事件:

$(document).ready(function(){

          // 开始写 jQuery 代码...

});

3、选择器:

基本选择器:

#id:id选择器

.class:类选择器

$("*"):选取所有元素

$("div") 标签选择器,用于获取多个元素

层级选择器:

ancestor descendant: 祖先与儿子,孙子,重孙子

parent > child:  父与子

prev + next:紧挨着的,相当于同桌

prev ~ siblings: 兄弟

基本过滤选择器:

$("p:first"):选取第一个 <p> 元素

$("p:last"):选取最后一个 <p> 元素

$("tr:even"):选取偶数位置的 <tr> 元素

$("tr:odd"):选取奇数位置的 <tr> 元素

属性选择器:

例:$("input [name = '输入框1'] ")     //选择input中name为“输入框1”的input

4、jQuery中的事件:

鼠标事件键盘事件表单事件文档/窗口事件
click   鼠标点击keypress  键被按下submit  提交load   已废弃
dblclick  鼠标双击keydown  键按下的过程change  元素值被修改resize  调整窗口大小
mouseenter   鼠标穿过元素keyup     键被松开focus    聚焦scroll   滚动
mouseleave blur   失去焦点unload  已废弃
hover  鼠标停留在元素上

四、JQuery与JS的不同:

1、JQuery页面加载速度比JS快

加载顺序如下:

练习:

<!DOCTYPE html>
<html>
    <head>
        <title>JQ和JS页面加载的区别</title>
        <meta charset="utf-8">
        <script type="text/javascript" src="jquery-1.8.3.js"></script>
        <script>

           window.onload = function () {
               alert('张三');
           }
           //传统页面加载会存在覆盖问题,加载比JQ慢
           //整个页面加载完毕
           window.onload = function() {
               alert('老王');
           }

           //JQ的加载比JS快
           //当整个dom树结构绘制完毕就会加载
           //JQ不存在覆盖问题,按顺序执行
           jQuery(document).ready(function() {
               alert('赵四');
           });

           $(document).ready(function() {
               alert('李四');
           });
           //简写
           $(function(){
               alert('汾九');
           });
           
        </script>
    </head>
    <body>

    </body>
</html>

2、获取元素的方式不同:

方法不同,效果相同

练习:

<!DOCTYPE html>
<html>
    <head>
        <title>JQ对象的获取</title>
        <meta charset="utf-8">
        <script type="text/javascript" src="jquery-3.4.1.js"></script>
        <script>
            $(function(){
                //js方式获取
                /*  document.getElementById("btn").onclick = function() {
                    location.href = "surprise.html";
                }*/

                //JQ方式获取
                $("#btn").click(function(){
                    location.href = "surprise.html";
                });
            });
           
        </script>
    </head>
    <body>
        <input type="button" value="点我有惊喜" id="btn" />
    </body>
</html>




3、DOM操作的不同:

        DOM对象无法操作JQ里的属性和方法。

        JQ对象也无法操作DOM里的属性和方法。

练习:

<!DOCTYPE html>
<html>
    <head>
        <title>JQ中DOM操作</title>
        <meta charset="utf-8">
        <script type="text/javascript" src="jquery-3.4.1.js"></script>
        <script>
            function writed(){
                //JS的DOM操作
                document.getElementById("span1").innerHTML="可不咋的";
            }

            //JQ的DOM操作
            $(function() {
                $("#btn").click(function(){
                    //JQ中无法操作JS里的属性和方法,所以不能用innerHTML
                    $("#span1").html("呵呵");
                })
            })
        </script>
    </head>
    <body>
        <input type="button" value="JS写入" onclick="writed()">
        <input type="button" value="JQ写入" id="btn"></br>
        空心:<span id="span1">你好帅!</span>
    </body>
</html>

DOM与对象与JQ对象的转换:

<!DOCTYPE html>
<html>
    <head>
        <title>JQ中DOM操作</title>
        <meta charset="utf-8">
        <script type="text/javascript" src="jquery-3.4.1.js"></script>
        <script>
            function writed(){
                ///将DOM对象转换为JQ对象
                var sspan = document.getElementById("span1");
                $(sspan).html("好看好看!");
            }

            //将JQ对象转换成DOM对象
            $(function() {
                $("#btn").click(function(){
                    //方法一
                    $("#span1").get(0).innerHTML="嗯呐嗯呐!";
                    //方法二
                    $("#span1")[0].innerHTML="你最好看!";
                })
            })
        </script>
    </head>
    <body>
        <input type="button" value="JS写入" onclick="writed()">
        <input type="button" value="JQ写入" id="btn"></br>
        空心:<span id="span1">你好帅!</span>
    </body>
</html>

4、JQ的定时功能:

     JQ定时弹出广告

代码:

<!DOCTYPE html>
<html>
    <head>
        <title>JQ实现广告弹出</title>
        <meta charset="utf-8">
        <style type="text/css">
            body {
                width: 1200px;
                height: 1200px;
                margin: 0 auto;
                border: 1px solid lightsalmon;
                background-color: azure;
            }
     
            .dd1 {
     
                height: 60px;
                border: 1px solid pink;
                float: left;
                /*设置向左浮动*/
            }
     
            .dd2 {
                width: 1200px;
                height: 60px;
                background-color: black;
                border: 1px solid palevioletred;
     
            }
     
            a {
                text-decoration: none;
            }
     
            /* 清除浮动 */
            #clear {
                clear: both;
            }
        </style>

        <script type="text/javascript" src="jquery-3.4.1.js"></script>
        <script>
            
            $(function () {
                time = setInterval("showAd()",3000);
            });

            function showAd(){
                //定时弹出广告图片
                //方法一:
                $("#img2").show(1000);  //show(1000)是弹出耗时一秒
               
                /*方法二:向下滑动显示广告slideDown()
                $("#img2").slideDown(5000);*/

                /*方法三:淡入淡出
                $("#img2").fadeIn(4000);*/

                //清除图片定时操作
                clearInterval(time);
                //隐藏图片的定时
                time = setInterval("hiddenAd()",3000);
            }

            function hiddenAd() {
                //方法一:隐藏图片
                $("#img2").hide();
                /*方法二:向上滑动隐藏广告slideUP()
                $("#img2").slideUp(5000);*/
                /*方法三:
                $("#img2").fadeOut(6000);*/
                //清除隐藏图片的定时
                clearInterval(time);
            }
            

        </script>
    </head>
    <body onload="init()">
    
            <!--第一层-->
            <div>
                <img src="p1.jpg" height="400px" width="1200px" id="img2" style="display:none"/>  
                <div class="dd1">
                    <img src="tb1.png" width="398px" height="60px" />
                </div>
                <div class="dd1">
                    <img src="tb2.png" width="398px" height="60px" />
                </div>
                <div class="dd1">
                    <img src="tb3.png" width="398px" height="60px" />
                </div>
            </div>
         
            <!-- 清除浮动 -->
            <div id="clear"></div>
         
            <!--第二层-->
            <div class="dd2">
                <p>
                    &nbsp;&nbsp;&nbsp;
                    <a href="#"><font color="white" size="5px"> 首页 </font></a>
                    &nbsp;&nbsp;
                    <a href="#"><font color="white" size="3px">手机数码</font></a>
                    &nbsp;&nbsp;
                    <a href="#"><font color="white" size="3px">电脑办公</font></a>
                    &nbsp;&nbsp;
                    <a href="#"><font color="white" size="3px">鞋靴箱包</font></a>
                    &nbsp;&nbsp;
                    <a href="#"><font color="white" size="3px">家用电器</font></a>
                </p>
            </div>
         
            <!-- 第三层 -->
            <div>
                <img src="s1.jpg" width="1200px" height="715px" id="img1" />
            </div>
         
        </body>
</html>

五、jQuery的使用:

使用jQuery来使表格实现隔行换色和全选全不选

效果:

实现:

<!DOCTYPE html>
<html>
    <head>
        <title>表格颜色交替显示</title>
        <meta charset="utf-8">
        
        <script type="text/javascript" src="jquery-3.4.1.js"></script>
        <script>
           $(function () {
               //选择器选出tbody中的每一行,实现隔行换色
               $("tbody tr:odd").css("background-color","lightyellow");
               $("tbody tr:even").css("background-color","pink");
           })
           $(function () {
               $("#select").click(function () {
                   //获取body中所有的复选框并将其选中状态与全选复选框状态一致
                   $("tbody input").prop("checked",this.checked);
               })
           })
        </script>
    </head>
    <body>
        <table border="1" id="tbl" width="500px" height="240px" align="center">
            <thead>
                <tr>
                    <td colspan="12">
                        <input type="button" value="删除">
                    </td>
                </tr>

                <tr>
                    <td><input type="checkbox" id="select"></td>
                    <th>用户Id</th>
                    <th>用户名</th>
                    <th>年龄</th>
                    <th>毕业学校</th>
                    <th>备注</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td><input type="checkbox" id="select1"></td>
                    <td>1</td>
                    <td>小明</td>
                    <td>20</td>
                    <td>光明小学</td>
                    <td>优秀班干部</td>
                </tr>
                <tr>
                    <td><input type="checkbox" id="select2"></td>
                    <td>2</td>
                    <td>小刚</td>
                    <td>19</td>
                    <td>光明小学</td>
                    <td>学习委员</td>
                </tr>
                <tr>
                    <td><input type="checkbox" id="select3"></td>
                    <td>3</td>
                    <td>小红</td>
                    <td>25</td>
                    <td>光明小学</td>
                    <td>副班</td>
                </tr>
                <tr>
                    <td><input type="checkbox" id="select4"></td>
                    <td>4</td>
                    <td>李磊</td>
                    <td>18</td>
                    <td>光明小学</td>
                    <td>服务股长</td>
                </tr>
                <tr>
                    <td><input type="checkbox" id="select5"></td>
                    <td>5</td>
                    <td>韩梅梅</td>
                    <td>21</td>
                    <td>光明小学</td>
                    <td>心理委员</td>
                </tr>
            </tbody>
        </table>
    </body>
</html>

2、数组的遍历操作:

(1)each(callback)

(2)$.each(object,[callback])

3、文档处理操作:

(1)添加:

append():A.append(B);  把B追加到A内容的末尾处

appendTo():A.appendTo(B);  把A追加到B内容的末尾处

(2)删除:

empty(): $("p").empty();   把p里面的内容移除

remove(): $("p").remove;  把p及其里面的内容都移除

 

练习:JQuery实现省市二级联动

效果:

实现:

<!DOCTYPE html>
<html>
 
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,intial-scale=1">
    <title>注册网页</title>
    <style type="text/css">
        body {
            width: 1200px;
            height: 1200px;
            margin: 0 auto;
            border: 1px solid lightsalmon;
            background-color: azure;
        }
 
        .dd1 {
 
            height: 60px;
            border: 1px solid pink;
            float: left;
            /*设置向左浮动*/
        }
 
        .dd2 {
            width: 1200px;
            height: 60px;
            background-color: black;
            border: 1px solid palevioletred;
 
        }
 
        table tr {
            height: 10px;
        }
 
        a {
            text-decoration: none;
        }
 
        /* 清除浮动 */
        #clear {
            clear: both;
        }
    </style>
 
    <script type="text/javascript" src="jquery-3.4.1.js"></script>
    <script>
        $(function () {
            
             //创建一个二维数组
            var cities = new Array(3);
            cities[0] = new Array("武汉市","黄冈市","襄阳市","荆州市");
            cities[1] = new Array("长沙市","郴州市","株洲市","岳阳市");
            cities[2] = new Array("石家庄市","邯郸市","廊坊市","保定市");
            cities[3] = new Array("郑州市","洛阳市","开封市","商丘市");
            
            $("#province").change(function(){
                //先清空城市下拉列表的内容
                $("city").empty();
                //获取用户选取的省份
                var pro = this.value;
                //遍历二维数组中的省份
                $.each(cities,function (i,n) {
                    if(pro==i){
                        //遍历省份下的所有城市
                        $.each(cities[i],function (j,m) {
                            //创建城市文本节点
                            var textNode = document.createTextNode(m);
                            //创建option元素节点
                            var op = document.createElement("option");
                            //把城市节点添加到option节点中
                            $(op).append(textNode);          //$(op)强制转化类型
                            //把option节点添加到第二个下拉列表中
                            $(op).appendTo($("#city"));
                        });
                    }
                });
            });
        })
    </script>
 
</head>
 
<body>
    <!--第一层-->
    <div>
        <div class="dd1">
            <img src="tb1.png" width="398px" height="60px" />
        </div>
        <div class="dd1">
            <img src="tb2.png" width="398px" height="60px" />
        </div>
        <div class="dd1">
            <img src="tb3.png" width="398px" height="60px" />
        </div>
    </div>
 
    <!-- 清除浮动 -->
    <div id="clear"></div>
 
    <!--第二层-->
    <div class="dd2">
        <p>
            &nbsp;&nbsp;&nbsp;
            <a href="#"><font color="white" size="5px"> 首页 </font></a>
            &nbsp;&nbsp;
            <a href="#"><font color="white" size="3px">手机数码</font></a>
            &nbsp;&nbsp;
            <a href="#"><font color="white" size="3px">电脑办公</font></a>
            &nbsp;&nbsp;
            <a href="#"><font color="white" size="3px">鞋靴箱包</font></a>
            &nbsp;&nbsp;
            <a href="#"><font color="white" size="3px">家用电器</font></a>
        </p>
    </div>
 
    <!--第三层-->
    <div >
        <br /><br/>
        <form action="#" method="get" name="regform" οnsubmit="return checkForm()">
            <table border="1px" align="center" cellspacing="0px" cellpadding="0px" width="700px" height="500px">
                <tr>
                    <td colspan="2">会员注册 USER REGISTER</td>
                </tr>
                <tr>
                    <td>用户名</td>
                    <td>
                        <input type="text" id="username" name="username"/>
                            </td>
                </tr>
                <tr>
                    <td>密码</td>
                    <td>
                        <input type="password" id="password" name="password"/>
                    </td>
                </tr>
                <tr>
                <td>确认密码</td>
                <td>
                    <input type="password" id="repassword" name="repassword"/>
                </td>
                </tr>
                <tr>
                    <td>Email</td>
                    <td>
                        <input type="email" id="email" name="email"/>
                    </td>
                </tr>
                <tr>
                    <td>姓名</td>
                    <td>
                        <input type="text" id="name" name="name"/>
                    </td>
                </tr>
                <tr>
                    <td>性别</td>
                    <td>
                        <input type="radio" value="男" name="sex" checked="checked"/>男
                        <input type="radio" value="女" name="sex"/>女
                    </td>
                </tr>
                <tr>
                    <td>出生日期</td>
                    <td>
                        <input type="text" id="date" name="date"/>
                    </td>
                </tr>
                <tr>
                    <td>籍贯</td>
                    <td>
                        <!-- 省 -->
                        <select id="province">
                            <option>--请选择--</option>
                            <option value="0">湖北</option>
                            <option value="1">湖南</option>
                            <option value="2">河北</option>
                            <option value="3">河南</option>
                        </select>
                        <!-- 市 -->
                        <select id="city">
 
                        </select>
                    </td>
                </tr>
                <tr>
                    <td>验证码</td>
                    <td>
                        <input type="text" id="checkcode" name="checkcode">
                        <img src="4.jpg" height="35px" width="80px"/>
                    </td>
                </tr>
                <tr>
                    <td colspan="2" align="center">
                        <input type="reset" value="重置" />&nbsp;&nbsp;
                        <input type="submit" value="注册"/>
                    </td>
                </tr>
            </table>
        </form>
    </div>
 
</body>
 
</html>

六、jQuery的效果:

1、隐藏和显示:(还可以设置速度)

show()    //显示

hide()    //隐藏

toggle()   //切换隐藏和显示

2、淡入和淡出:

fadeIn()     //淡入

fadeOut()  //淡出

fadeToggle()  //淡入和淡出中切换

3、滑动:

slideDown()   //向下滑动

slideUp()      //向上滑动

slideToggle()   //向下向上滑动切换

七、jQuery - AJAX:

1、简介:

AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。

AJAX 是与服务器交换数据的技术,它在不重载全部页面的情况下,实现了对部分网页的更新。

通过 jQuery AJAX 方法,能够使用 HTTP Get 和 HTTP Post 从远程服务器上请求文本、HTML、XML 或 JSON - 同时能够把这些外部数据直接载入网页的被选元素中。

2、load() 方法:

load() 方法从服务器加载数据,并把返回的数据放入被选元素中。

$(selector).load(URL,data,callback);

必需的 URL 参数规定您希望加载的 URL。

可选的 data 参数规定与请求一同发送的查询字符串键/值对集合。

可选的 callback 参数是 load() 方法完成后所执行的函数名称。

3、AJAX get() 和 post() 方法:

jQuery get() 和 post() 方法用于通过 HTTP GET 或 POST 请求从服务器请求数据。

两种在客户端和服务器端进行请求-响应的常用方法是:GET POST

GET - 从指定的资源请求数据

POST - 向指定的资源提交要处理的数据

使用:

(1)jQuery $.get() 方法

$.get(URL,callback);

必需的 URL 参数规定您希望请求的 URL。

可选的 callback 参数是请求成功后所执行的函数名。

(2)jQuery $.post() 方法

$.post(URL,data,callback);

必需的 URL 参数规定您希望请求的 URL。

可选的 data 参数规定连同请求发送的数据。

可选的 callback 参数是请求成功后所执行的函数名。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值