jQuery框架

发布时间:2024年01月04日

1.1、jQuery简介

jQuery 是一个高效、精简并且功能丰富的 JavaScript 工具库。它提供的 API 易于使用且兼容众多浏览器,这让诸如 HTML 文档遍历和操作、事件处理、动画和 Ajax 操作更加简单。目前超过90%的网站都使用了jQuery库,jQuery的宗旨:写的更少,做得更多!

1.2、jQuery引入方式?

  • 本地引入:将jQuery下载下来,然后导入项目中,使用script标签进行引用CDN引入
    <head>
        <%--src 指定本地jQuery的所在地址路径--%>
        <script src="jquery-1.9.1.min.js"></script>
    </head>    
    
  • 使用远程CDN资源库在线引入,避免了文件下载(本教程所采用)?
<head>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>    

1.3、jQuery快速使用

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>jQuery</title>
</head>
<body>

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
    $(function () {
        // 请将jQuery代码书写在这里 ...
        alert('Hello,World!');
    });
</script>
</body>
</html>

1.4、jQuery的常用操作

??????? 1.4.1 选择器的使用
<div id="myId"></div>

<script>
    //获取id值为myId的元素对象
    $("#myId")
</script>
??????? 1.4.2 元素对象的操作?? (取值、赋值等)
<div id="myId">张三</div>

<script>

    //取值
    var html  =  $("#myId").html();
    //弹窗
    alert(html)
    //赋值
    $("#myId").html("hello")
</script>
??????? 1.4.3 事件绑定
<button>say hello</button>
<script>
    $('button').click(function () {
        alert("hello")
    });
</script>
??????? 1.4.4 链式编程
<ul>
    <li>三国演义</li>
    <li>水浒传</li>
    <li>齐天大圣</li>
    <li>红楼梦</li>
</ul>
<script>
    //多个方法链式调用,将ul中索引为2的li元素的内容设置为西游记
    $('ul').find('li').eq(2).html("西游记");
</script>
??????? 1.4.5 jQuery中的load方法
<button id="btn">加载数据</button>

<div id="box"></div>
<script>
    $("#btn").click(function () {
        $("#box").load("http://localhost:8080/target.jsp")
    });
</script>
<body>
<h3>早发白帝城</h3>
<h6>唐 李白</h6>

<p>朝辞白帝彩云间,</p>
<p>千里江陵一日还。</p>
<p>两岸猿声啼不住,</p>
<p>轻舟已过万重山。</p>
</body>
??????? 1.4.6?jQuery中的load方法 (post请求,携带数据)

????????(向服务器发送数据)

load()方法在发送请求时,可以附带一些数据,附带的数据可以通过第2个参数传递。

<html>
<head>
    <title>Title</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>

<button id="btn">加载数据</button>
<div id="box"></div>
<script>
    $('#btn').click(function() {
        // 访问路径 ,  携带的数据
        $('#box').load('http://localhost:8080/LoadServlet',
            {username: 'admin', password: 123});
    });
</script>
</body>
</html>
@WebServlet(name = "LoadServlet",urlPatterns = "/LoadServlet")
public class LoadServlet extends HttpServlet{
    
    public void doPost(HttpServletRequest request, HttpServletResponse  response) throws IOException {
        response.setContentType("text/html;charset=utf-8");
        //获取load2.jsp页面的username与password值
        String username=request.getParameter("username");
        String password=request.getParameter("password");
        response.getWriter().println("注册成功!<br/>用户名: "+username+"<br/>密码:"+password);
    }

}

测试结果截图如下:

?

??????? 1.4.7 jQuery中的load方法(回调函数)

load()方法的第3个参数是回调函数,该函数在请求数据加载完成后执行。回调函数用于获取本次请求的相关信息,它有3个默认参数,分别表示响应数据、请求状态和XMLHttpRequest对象。
其中,请求状态共有5种,分别为success(成功)、notmodified(未修改)、error(错误)、timeout(超时)和parsererror(解析错误)。

?? 增加第三个参数:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>

<button id="btn">加载数据</button>
<div id="box"></div>
<script>
    $('#btn').click(function() {
        // 访问路径 ,  携带的数据
        $('#box').load('http://localhost:8080/LoadServlet',
                        {username: 'admin', password: 123},
                        function(responseData, status, xhr) {
                            console.log(responseData);	// 输出请求的数据
                            console.log(status);		// 输出请求状态
                            console.log(xhr);           // 输出XMLHttpRequest对象
                        }
        );
    });
</script>
</body>
</html>

测试结果截图如下:(F12查看)

2.1 JSON数据格式?

JSON数组数据都存储在一对[]中,在[]中,每一组数据用一对{}括起来,多个组之间用“,”分隔。需要注意的是,如果value是String类型的话必须用双引号引起来,如果是value是number、object、boolean和数组的话可以不使用双引号。

格式如下:

[
{"书名":"《三国演义》","价格":109.9,"作者":"罗贯中"},
{"书名":"《西游记》","价格":109.9,"作者":"吴承恩"},
{"书名":"《水浒传》","价格":109.9,"作者":"施耐庵"},
{"书名":"《红楼梦》","价格":109.9,"作者":"曹雪芹"}
]

任务:按照以下流程实现讲集合转化为JSON格式。

?

Book类省略......

@WebServlet(name = "JSONServlet",urlPatterns = "/JSONServlet")
public class JSONServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //解决中文乱码
        resp.setContentType("text/html;charset=UTF-8");
        //初始化一个空集合
        ArrayList<Book> bookList = new ArrayList<>();
        //创建四本书对象
        Book book1 = new Book("《三国演义》", 109.9, "罗贯中");
        Book book2 = new Book("《西游记》", 109.9, "吴承恩");
        Book book3 = new Book("《水浒传》", 109.9, "施耐庵");
        Book book4 = new Book("《红楼梦》", 109.9, "曹雪芹");
        //将数据放入集合中
        bookList.add(book1);
        bookList.add(book2);
        bookList.add(book3);
        bookList.add(book4);
        //创建JSONArray对象
        JSONArray jsonArray = new JSONArray();
        for (Book book:bookList){
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("书名",book.getName());
            jsonObject.put("价格",book.getPrice());
            jsonObject.put("作者",book.getAuther());
            jsonArray.add(jsonObject);
        }
        //浏览器页面输出
        resp.getWriter().println(jsonArray);
    }
}

?

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
<button id="btn">加载数据</button>
<table id="dataTable" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <th>作者</th>
        <th>书名</th>
        <th>价格</th>
    </tr>
</table>
<script type="text/javascript">
    $('#btn').click(function() {
        $.getJSON('http://localhost:8080/JSONServlet',
            function(data) {
                var html = '';
                for (var Book in data) {
                    html += '<tr>';
                    for (var key in data[Book]) {
                        html += '<td>' + data[Book][key] + '</td>';
                    }
                    html += '</tr>';
                }
                $('#dataTable').append(html);
            });
    });
</script>
</body>
</html>

?测试结果截图如下:

3.1 Ajax的基础操作

在jQuery中,向服务器请求数据的方法有很多。其中,最基本的方法是$.ajax(), $.ajax()方法可以精确地控制Ajax请求。例如,在请求出错时执行某些操作,设置请求字符集和超时时间等。

3.1.1 Ajax基础代码

$.ajax()方法是jQuery中最底层的Ajax方法,前面讲解的$.get()方法、$.post()方法就是对$.ajax()方法进一步的封装,$.get()方法、$.post()方法的实际封装代码如下。

jQuery.each( [ "get", "post" ], function( i, method ) {
    jQuery[ method ] = function( url, data, callback, type ) {
        if ( jQuery.isFunction( data ) ) {
            type = type || callback;
            callback = data;
            data = undefined;
        }
        return jQuery.ajax({
            url: url, type: method, dataType: type, data: data, success: callback
        });
    };
});

3.1.2 Ajax语法

$.ajax()方法可以实现所有关于Ajax的操作,其语法格式如下。

$.ajax(options)		    // 语法格式1
$.ajax(url,options)	   // 语法格式2

3.1.3?$.ajax()方法常用参数

参数

描述

url

请求地址,默认是当前页面

data

发送至服务器的数据

xhr

用于创建XMLHttpRequest对象的函数

beforeSend(xhr)

发送请求前执行的函数

success(result,status,xhr)

请求成功时执行的函数

error(xhr,status,error)

请求失败时执行的函数

complete(xhr,status)

请求完成时执行的函数(请求成功或失败时都会调用,顺序在success和error函数之后)

callback

请求完成时执行的函数

dataType

预期的服务器响应的数据类型

type

请求方式(GET或POST)

cache

是否允许浏览器缓存被请求页面,默认为true

timeout

设置本地的请求超时时间(以毫秒计)

async

是否使用异步请求。默认为true

username

在HTTP访问认证请求中使用的用户名

password

在HTTP访问认证请求中使用的密码

????????? contentType

发送数据到服务器时所使用的内容类型。默认为“application/x-www-form-urlencoded”

???????? processData

是否将请求发送的数据转换为查询字符串。默认为true

???????????? context

为所有Ajax相关的回调函数指定this值

??? dataFilter(data,type)

用于处理 XMLHttpRequest 原始响应数据

????????? global是否为请求触发全局Ajax事件处理程序,默认为tru
???????? ifModified

是否仅在最后一次请求后,响应发生改变时才请求成功,默认为false

???????? traditional

是否仅在最后一次请求后,响应发生改变时才请求成功,默认为false

????? scriptCharset

请求的字符集

未完待续。。。。。。

?

?

?

?

?

?

?

文章来源:https://blog.csdn.net/kelouze06/article/details/135282740
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。