jQuery框架

news2024/11/15 12:27:21

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

请求的字符集

未完待续。。。。。。

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1354097.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ElecardStreamEye使用教程(视频质量分析工具、视频分析)

文章目录 Elecard StreamEye 使用教程安装与设置下载安装 界面导航主菜单视频窗口分析窗口 文件操作打开视频文件 视频流分析帧类型识别码率分析分析报告 高级功能视觉表示比较模式自动化脚本 下载地址1&#xff1a;https://www.onlinedown.net/soft/58792.htm 下载地址2&…

计算机系统基础

C 语言相关内容省略&#xff0c;复习自用&#xff0c;仅供参考~ 概述 冯诺伊曼结构 存储程序工作方式&#xff1a;将事先编好的程序和原始数据送入主存后才能执行程序&#xff0c;程序被启动执行后&#xff0c;计算机能在不需要操作人员干预下自动完成逐条指令取出和执行的任…

【电商项目实战】实现订单超时支付取消

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《电商项目实战》。&#x1f3af;&#x1f3af; &am…

OpenHarmony源码转换器—多线程特性转换

本文讨论了如何将多线程的 Java 代码转换为 OpenHarmony ArkTS 代码​ 一、简介 Java 内存共享模型 以下示例伪代码和示意图展示了如何使用内存共享模型解决生产者消费者问题。 生产者消费者与共享内存间交互示意图 为了避免不同生产者或消费者同时访问一块共享内存的容器时…

阶段十-分布式-Redis02

第一章 Redis 事务 1.1 节 数据库事务复习 数据库事务的四大特性 A&#xff1a;Atomic &#xff0c;原子性&#xff0c;将所以SQL作为原子工作单元执行&#xff0c;要么全部执行&#xff0c;要么全部不执行&#xff1b;C&#xff1a;Consistent&#xff0c;一致性&#xff0…

Vue前端文字效果:如何让一段文本像是手动一个一个字打出来的

效果展示 自己做的AI聊天机器人界面&#xff0c;我觉得比微信还好看 由于这个前端略微复杂&#xff0c;下文用最简单的例子来展示&#xff1a; 分析需求 对于AI聊天工具的前端&#xff0c;如果AI生成的文本像是一个一个字打出来的&#xff0c;就会让AI看起来更像真的人&…

详解卡尔曼滤波(Kalman Filter)

1. 从维纳滤波到卡尔曼滤波 黑盒&#xff08;Black Box&#xff09;思想最早由维纳&#xff08;Wiener&#xff09;在1939年提出&#xff0c;即假定我们对从数据到估计中间的映射过程一无所知&#xff0c;仅仅用线性估计&#xff08;我们知道在高斯背景下&#xff0c;线性估计…

STM32 HAL库定时器触发DMA并口数据传输

代码目的&#xff1a; STM32与FPGA通讯&#xff0c;通过8位并口线进行通讯&#xff0c;16byte的数据在10us之内通过8位并口数据线传给FPGA&#xff0c;FPGA读取该数据。 HAL库设置说明&#xff1a; 时钟采用80MHz&#xff0c;由于16byte的数据要在10us之内传完&#xff0c;那…

[笔记] 使用 qemu 创建虚拟磁盘并安装 grub

之前使用 wsl 进行了直接创建虚拟磁盘并安装 grub,现在希望能够直接借助 qemu 的工具创建虚拟磁盘文件并安装 grub,由于需要用到 nbd(net block device网络块设备) 模块,在 wsl 中并不支持,因此这里使用到了 Hypver-V 虚拟机创建了一个 Ubuntu 系统,在系统中安装了 qemu 和 gru…

物联网安全:保护关键网络免受数字攻击

物联网 (IoT) 彻底改变了当今互联世界中的各个行业&#xff0c;实现了智能家居、自动驾驶汽车和先进的工业系统。然而&#xff0c;随着物联网设备数量的急剧增加&#xff0c;这些设备和相应网络的安全性已成为人们关注的焦点。本文旨在探讨物联网安全的重要性&#xff0c;同时简…

Pandas教程(五)—— 数据重塑透视及批量处理

1.数据重塑 重塑数据主要有两种方式&#xff0c;分别是 stack&#xff08;堆叠&#xff09;和 unstack&#xff08;拆堆&#xff09;&#xff0c;他们两个是互逆的操作 函数作用 data.stack&#xff08; &#xff09; 堆叠 会“旋转”或将列中的数据透视到行 列 一一> 行…

AWS(三):如何在AwsManagedAd目录和windowsAD实例之间建立双向信任。

前提&#xff1a; 1.创建好了一个AWS managed AD目录&#xff0c;我的目录域名为:aws.managed.com 2.创建好了一个windows AD实例并提升了为域控服务器,实例域名为:aws2.com 看过我AWS 一和二的应该都会创建windows实例了&#xff0c;切记不能将其无缝加入到aws managed AD的…

(JAVA)-反射

什么是反射&#xff1f; 反射允许对成员变量&#xff0c;成员方法和构造方法的信息进行编程访问。 说简单点就是反射能将类里面的构造方法&#xff0c;成员变量,修饰符,返回值&#xff0c;注解&#xff0c;类型&#xff0c;甚至异常等类里面的所有东西都能够获取出来。 关于C…

打造炫酷粒子效果的前端利器tsParticles

前端潮流速递 &#xff1a;打造炫酷粒子效果的前端利器tsParticles 在现代前端开发中&#xff0c;动画和视觉效果是吸引用户的关键元素之一。而实现炫酷而引人入胜的粒子效果&#xff0c;常常需要耗费大量的时间和精力。然而&#xff0c;有了 tsParticles&#xff0c;这一切变…

GitHub上的15000个Go模块存储库易受劫持攻击

内容概要&#xff1a; 目前研究发现&#xff0c;GitHub上超过15000个Go模块存储库容易受到一种名为“重新劫持”的攻击。 由于GitHub用户名的更改会造成9000多个存储库容易被重新劫持&#xff0c;同时因为帐户删除&#xff0c;会对6000多个存储库造成重新劫持的危机。目前统计…

【MySQL·8.0·源码】MySQL 表的扫描方式

前言 在进一步介绍 MySQL 优化器时&#xff0c;先来了解一下 MySQL 单表都有哪些扫描方式。 单表扫描方法是基表的读取基础&#xff0c;也是完成表连接的基础&#xff0c;熟悉了基表的基本扫描方式&#xff0c; 即可以倒推理解 MySQL 优化器层的诸多考量。 基表&#xff0c;即…

半导体行业-SECS/GEM协议 JAVA与SECS/GEM通信 什么是配方?springboot集成SECS通信协议 配方管理S7FX

Java与SECS基础通信 Java实现SECS指令S2F17获取时间 Java实现SECS指令 S10F3 终端单个显示例子 Java实现SECS指令 S7FX配方管理 Java实现SECS指令 S5F1报警/取消报警上传 实例源码及DEMO请查阅 JAVA开发SECS快速入门资料&#xff0c;SECS S7F19 什么是半导体配方&…

Unity3D UGUI图集打包与动态使用(TexturePacker)

制作图集的好处&#xff1a; 众所周知CPU是用来处理游戏的逻辑运算的&#xff0c;而GPU是用来处理游戏中图像的。在GPU中&#xff0c;我们要绘制一个图像需要提交图片&#xff08;纹理&#xff09;到显存&#xff0c;然后再进行绘制&#xff08;在这个过程中会产生一次DrawCall…

书生-浦路大模型全链路开源体系

2023年&#xff0c;大模型成为热门关键词 论文链接 大模型已经成为发展通用人工智能的重要途经 模型评测过程&#xff1a;从模型到应用 全链条开源开发体系 | 数据&#xff1a; 多模态融合 万卷包含文本、图像和视频等多模态数据&#xff0c;涵盖科技、文学、媒体、教育和法…

力扣hot100 二叉树的层序遍历 BFS 队列

&#x1f468;‍&#x1f3eb; 题目地址 时间复杂度&#xff1a; O ( n ) O(n) O(n)空间复杂度&#xff1a; O ( n ) O(n) O(n) &#x1f60b; 队列写法 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode…