复习回顾之JQuery和Ajax

一、JQuery

1.什么是JQuery?

        JQuery的目标就是为了简化JavaScript对DOM对象的操作,可以把JQuery理解为一个JavaScript的库。所以学习JQuery之前应该先把JavaScript学习完。

2.DOM对象和JQuery对象的是什么及其联系

1)dom对象

        使用JavaScript的语法创建的对象叫做dom对象,也叫做js对象,就是html页面上的一些html标签。例如:

<script type="text/javascript">
    // 这里obj就是一个dom对象
    let obj = document.getElementById("btn");
</script>
<input type="button" id="btn" value="按钮">

2)JQuery对象

        使用JQuery语法表示的对象叫JQuery对象(注:JQuery对象是一个数组)。

<script type="text/javascript" src="导入JQuery的所在路径"></script>
<script type="text/javascript">
    // 这里$obj就是一个jQuery对象
    let $obj = $("#btn")
</script>
<input type="button" id="btn" value="按钮">

3)dom对象和jQuery对象的联系

        dom对象可以和jQuery对象互相转换

        dom对象转jQuery对象:$(obj)

        jQuery对象转dom对象:$obj.get(0)或者$obj[0]

3.JQuery中常用的选择器

1)id选择器

        语法:$("#dom对象的id"),这是通过dom对象的id来定位dom对象

2)class选择器

        语法:$(".dom对象的class")

3)标签选择器

        语法:$("dom对象的标签名称")

4)组合选择器

        语法:$("#dom对象的id,.dom对象的class,dom对象的标签名称"),即以上选择器可以组合使用,之间用逗号隔开

5)表单选择器

        使用input标签的type属性值来定位dom对象,有没有form标签都可以使用。

        语法:$(":input标签的type属性值"),例如:$(":button"),选择了所有type是button的input标签。

4.JQuery中的过滤器(必须配合选择器使用)

        JQuery对象是一个数组,里面存放着dom对象,所有数组中每个dom对象的下标顺序和dom对象(标签)所声明的位置一一对应。即当你使用某些选择器选择到多个dom对象时,JQuery对象就是一个存储这些对象的数组,例如:let $obj = $("div"),此时$obj就是一个存放div对象的数组,下标从0开始,对应着最先声明的<div>标签。

1)保留数组中第一个DOM对象

        语法:$("选择器:first")

2)保留数组中最后一个DOM对象

        语法:$("选择器:last")

3)根据数组下标,保留指定DOM对象

        语法:$("选择器:eq(数组下标)")

4)选择数组中小于指定下标的DOM对象(不包括指定下标的DOM对象)

        语法:$("选择器:lt(数组下标)")

5)选择数组中大于指定下标的DOM对象(不包括指定下标的DOM对象)

        语法:$("选择器:gt(数组下标)")

6)表单属性过滤器

        根据表单中dom对象对应的状态情况,定位dom对象。状态常见的有:enabled、disabled、checked(用于radio单选和checkbox多选)、selected(注:此过滤器必须配合表单选择器使用)。例如:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="js/jquery-3.6.0.js"></script>
    <script type="text/javascript">
        $(function (){
          $("#btn1").click(function (){
            alert($(":text:enabled").val())
          })
          $("#btn2").click(function (){
            alert($(":text:disabled").val())
          })
          $("#btn3").click(function (){
            alert($(":checkbox:checked").val())
          })
          $("#btn4").click(function (){
            alert($("select>option:selected").val())
          })
        })
    </script>
</head>
<body>
    <input type="text" value="我是enabled的text" enabled>
    <input type="text" value="我是disabled的text" disabled>
    </br>
    <input type="checkbox" value="游泳">游泳
    <input type="checkbox" value="跑步">跑步
    <input type="checkbox" value="骑自行车">骑自行车
    </br>
    <select>
      <option value="" selected></option>
      <option value="java">java</option>
      <option value="c++">c++</option>
      <option value="javaScript">javaScript</option>
    </select>
    </br>
    <input type="button" value="选enabled的text" id="btn1">
    <input type="button" value="选disabled的text" id="btn2">
    <input type="button" value="选被选中的多选框" id="btn3">
    <input type="button" value="选被下拉列表框中的" id="btn4">
</body>
</html>

5.JQuery中事件的绑定 

        JQuery中事件的绑定有两种方法

        方法一:$(选择器).监听事件名称(处理函数)。

        方法二:$(选择器).on("监听事件名称",处理函数)。

        监听事件名称就是js中的事件去掉on。例如:onclick事件的监听事件名称就是click。处理函数就是规定当事件发生时运行的函数。

6.JQuery中一些常用的函数

        val():无参调用时,读取dom数组中的第一个dom对象的value属性。有参调用时,将dom数组中所有dom对象的value属性值修改为传入的参数。

        text():相当于js中的innerText,无参调用时,读取dom数组中所有dom对象的文字显示内容,将得到的内容拼接成一个字符串返回。有参调用时,将dom数组中所有dom对象的文字显示内容值修改为传入的参数。

        attr():用法一:attr("属性名"),获取DOM数组第一个对象的属性值。用法二:attr("属性名","值"),对DOM数组中所有的DOM对象的该属性值修改为传入的值。

        remove():将DOM数组中所有的DOM对象及其子对象删除。

        empty():将DOM数组中所有DOM对象的子对象删除。

        append(参数):为DOM数组中所有DOM对象添加子对象,参数是一个字符串,可以识别html标签。

        each():each是对数组,json对象,和JQuery对象(dom数组)的遍历方法,对每个元素调用一次函数。用法一:$.each(要遍历的对象,function(index,element){处理程序})。用法二:JQuery对象.each(function(index,element){处理程序})。其中index是遍历时的数组下标(遍历json对象时是key),element是遍历时的对象(遍历json对象时是value)。

二、Ajax

1.什么是Ajax?

        Ajax全称:Asynchronous Javascript and XML。是用来做局部刷新的,我们需要创建一个对象,用来代替浏览器发起请求给服务器,该对象常用的是:XMLHttpRequest。

2.XMLHttpRequest对象的四个重要属性

1)onreadystatechange属性

        一个js函数,每当XMLHttoRequest对象的readyState属性改变时,就会调用该函数。

2)readyState属性

        存放XMLHttpRequest的状态,从0-4一共五种状态

        ① 0:请求未初始化,创建异步对象

        ② 1:初始化异步请求对象

        ③ 2:异步对象发送请求

        ④ 3:异步请求对象接受到响应数据

        ⑤ 4:异步请求对象已经将数据解析完毕(这个状态被使用)

3)status属性

        表示网络请求状况

        ① 200:请求成功

        ② 404:未找到页面

        ③ 500:服务器端出错

4)responseText属性

        表示从服务器端返回的数据

3.实现异步请求的步骤

1)创建异步请求对象(此时异步请求对象的readystatechange是0)

let xmlHttp = new XMLHttpRequest();

2)给异步对象绑定事件

xmlHttp.onreadystatechange = function() {
    // 处理请求的状态变化
    if(xmlHttp.readyState == 4 && xmlHttp.status == 200){
        // 说明异步请求成功
        // 获取异步请求返回的数据
        let data = xmlHttp.responseText;
        // 做处理...
    }
}

3)初始化异步请求对象(此时异步请求对象的readystatechange变化为1)

// 请求方式即get或者post,该参数是字符串
// url即请求地址,参数也是字符串
// 同步还是异步请求,参数是boolean类型值,异步为true,默认为true
xmlHttp.open(请求方式,url,同步还是异步请求);

4)使用异步对象发送请求(此时异步请求对象的readystatechange变化为2)

xmlHttp.send();

4.同步与异步请求区别

        异步处理请求:不用等待数据处理完毕,仍然往下执行后续代码。同步处理请求:必须等请求从服务器获得响应后,才能执行后续代码。        

5.JQuery封装的Ajax请求

JQuery将ajax请求进行了封装,方便程序员发送异步请求。有如下三个封装好的方法:

1)$.ajax()

        使用方法,$.ajax()通过Json字符串的参数来规定一个ajax请求。格式为$.ajax({属性名:属性值,属性名:属性值,...}),具体的属性名有如下:

        ① async:布尔值类型参数,表示是否是异步请求,异步为true,默认为true。

        ②contentType:可选参数,类型为字符串,表示发送到服务器的数据所使用的内容类型,常用Json格式,如:application/json。

        ③data:字符串或者数组或者json对象类型参数,表示要发送到服务器的数据,常用json。

        ④dataType:可选参数,类型为字符串,期望从服务器响应的数据格式。有xml、html、text、json,常用也是json。

        ⑤error:类型是一个函数,表示请求失败要运行的函数。

        ⑥success(resp):类型也是一个函数,表示请求成功后运行的函数,其中resp是自定义的形参名,就是JQuery处理之后的responseText。

        ⑦type:类型为字符串,表示该ajax的请求类型(get或者post)

        ⑧url:类型为字符串,表示请求的地址。

        $.ajax({
            async:true,
            contentType:'application/json',
            data:{'name':'张三','age':24},
            dataType:'json',
            error:function (){
                alert("请求失败!");
            },
            success:function (resp){
                alert("返回的数据为=="+resp);
            },
            type:'post',
            url:'/test'
        })

3)$.get()和$.post()               

        $.get()和$.post() 内部都是调用$.ajax()

        $.get()语法:$.get(url,data,success(resp),dataType)

        $.post()语法:$.post(url,data,success(resp),dataType)

        ① url:必须。规定需要请求的地址

        ② data:可选。规定连同请求发送到服务器的数据

        ③ success(resp):可选。当请求成功后运行的函数

        ④ dataType:期望从服务器响应的数据格式

6.总结

        ajax请求在日常开发中经常使用,例如:级联查询的下拉框。所以是一个非常重要的知识点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值