前端——Ajax和jQuery

一、Ajax

Ajax即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),  通过 JS 异步的向服务器发送请 求并接收响应数据。

同步访问:当客户端向服务器发送请求时,服务器在处理的过程中,浏览器只能等待,效率较低。

异步访问:当客户端向服务器发送请求时,服务器在处理的过程中,客户端可以做其他的操作,不需要一直等待。

创建ajax实例  

 let xhr = new XMLHttpRequest();

创建请求

method:请求方式,取值'GET' 或 'POST'

url:请求地址,字符串。

xhr.open(method,url);

 发送请求  

        xhr.send()

响应请求  

        xhr.onload = function(){

          //判断 你请求服务器的状态是否为200  200的状态码表示成功

          if(xhr.status === 200){

            console.log(xhr.response);

          }  

        }

二、jQuery

1.jQuery介绍

jQuery是JavaScript的工具库,对原生JavaScript中的DOM操作、事件处理、包括数据处理和Ajax技术等进行封装,提供更完善,更便捷的方法。

2.工厂函数 - $()

"$()"函数用于获取元素节点,创建元素节点或将原生JavaScript对象转换为jquery对象,返回 jQuery 对象。jQuery 对象实际是一个类数组对象,包含了一系列jQuery 操作的方法。

原生JavaScript对象与jQuery对象的属性和方法不能混用。可以根据需要,互相转换 :

1. 原生JavaScript转换jQuery对象

    $(原生对象),返回 jQuery 对象

2. jQuery对象转换原生JavaScript对象

    - 方法一 : 根据下标取元素,取出即为原生对象

        var div = $("div")[0];

    - 方法二 : 使用jQuery的get(index)取原生对象

        var div2 = $("div").get(0);

3.jQuery获取元素

jQuery通过选择器获取元素,$("选择器")

标签选择器:$("div")

ID 选择器:$("#d1")

类选择器:$(".c1")

群组选择器:$("body,p,h1")

后代选择器: $("div .c1")

子代选择器: $("div>span")

相邻兄弟选择器: $("h1+p")  匹配选择器1后的第一个兄弟元素,同时要求兄弟元素满足选择器2

通用兄弟选择器: $("h1~h2") 匹配选择器1后所有满足选择器2的兄弟元素

过滤选择器,需要结合其他选择器使用。

:first

  匹配第一个元素 例:$("p:first")

:last

  匹配最后一个元素 例:$("p:last")

:odd

  匹配奇数下标对应的元素

:even

  匹配偶数下标对应的元素

:eq(index)

  匹配指定下标的元素

:lt(index)

  匹配下标小于index的元素

:gt(index)

  匹配下标大于index的元素

:not(选择器)

  否定筛选,除()中选择器外,其他元素

示例代码:

<script>// jQuery 是 JavaScript的工具库   对原生js代码中方法 进行封装  dom操作  事件处理   包含数据处理和ajax技术等进行了封装   提供了完善的更加简单的方法   // 直接 使用 $() 来获取元素  console.log($('box')); // 返回结果是JQuery对象  // JQuery对象 转为原生js对象  // let box =$('.box')[0];// console.log(box);// 或者let box =$('.box').get(0);console.log(box);// 通过.css修改文字颜色  $('.box').css('color','red')</script>

4.操作元素内容

// 设置或读取标签内容,等价于原生innerHTML,可识别标签语法

html()

// 设置或读取标签内容,等价于innerText,不能识别标签

text()

// 设置或读取表单元素的值,等价于原生value属性

val()

示例代码:

 <script src='./jquery.js'></script><script>// html()等价于  原生 innerHTML 可识别标签  $('.wrap').html('<h2>明天星期五了</h2>')// 插入文本 $('p').text('搞学习了')// 原生js  读取input控件里面的值 直接.value    // console.log(inp.value);//jquery版获取表单控件里面的内容 console.log($('input').val());// 点击button按钮 把我在input输入框的内容  弹出来 $('button').click(function(){console.log($('input').val());})</script>

5.操作标签属性

1. attr("attrName","value")

    设置或读取标签属性

2. prop("attrName","value")

    设置或读取标签属性

    注意 :在设置或读取元素属性时,attr()和prop()基本没有区别;但是在读取或设置表单元素(按钮)的选中状态时,必须用prop()方法,attr()不会监听按钮选中状态的改变,只看标签属性checked是否书写

3. removeAttr("attrName")

    移除指定属性

示例代码:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title></head><body><!-- <input type="text" name='你好' id='check'> --><input type="checkbox" name='你好' id='check'><input type="submit" id='sub'><img  alt="你图片没了" src="https://img2.baidu.com/it/u=2425084553,971201481&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500" alt=""><script src='./jquery.js'></script><script>// 设置读取标签的属性  console.log($('#check').attr('name'));//读取这个标签的name属性// 给 value属性 设置了内容: 我输入了什么//    console.log($('#check').attr('value','我输入了什么'));//prop 读取或设置属性  //    alert($('#check').prop('value'))//attr 读取或设置属性  //    alert($('#check').attr('value'))$('#sub').click(function () {// 会监听你的点击状态// alert($('#check').prop('value'))//on表示选中// alert($('#check').attr('value'))//弹出  undefined 不会监听你按钮选中状态})// 删除属性$('img').removeAttr('src')</script></body></html>

6.操作标签样式

1. 针对类选择器,提供操作class属性值的方法

// 添加指定的类名

addClass("className")

// 移除指定的类型,如果参数省略,表示清空class属性值

removeClass("className")

// 如果当前元素存在指定类名,则移除;不存在则添加

toggleClass("className")

2. 操作行内样式

// 设置行内样式

css("属性名","属性值")  

// 设置一组CSS样式

css(对象)

示例代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>*{margin: 0px;padding: 0px;list-style: none;}.box{width: 300px;height: 300px;background-color: orange;}.wrap{background-color: pink;}.list{width: 400px;height: 80px;background-color: pink;margin: auto;}.list>li{float: left;width: 100px;height: 80px;background-color: gray;color: orange;text-align: center;line-height: 80px;/* 变成小手 */cursor: pointer;}.list>.only{background-color:  #096;}</style>
</head>
<body><div class='text wrap'></div><ul class='list'><li>英雄联盟</li><li>王者荣耀</li><li>永劫无间</li><li class='only'>原神</li></ul><p>我是文本标签</p><script src='./jquery.js'></script><script>// 添加指定类名  $('div').addClass('box')//删除指定类名    如果参数忽略不写 那就清空class属性值  // $('div').removeClass()// 如果当前标签有这个类名那就删掉  无则加 $('div').toggleClass('wrap')$('.list>li').click(function(){// 移除li标签里面用only类名  $('.list>li').removeClass('only');// this指向你当前点击的这个元素   // $(this).addClass('only');$(this).toggleClass('only')})// 操作元素 添加样式   $('元素').css('属性','属性值')  写多个就直接继续后面用.css方法 麻烦 // $('p').css('color','pink').css('font-size','20px')// 快捷写多个属性 就写对象属性  $('p').css({'width':'200px','height':'300px','background-color':'green'})</script>
</body>
</html>

049a9a905a9a4ed4935c4c7142dc8a3c.png

7.元素的创建,添加,删除

1. 创建:使用$("标签语法"),返回创建好的元素

// 创建元素

let div = $("<div></div>");

// 设置内容和属性

div.html("动态创建").attr("id","d1").css("color","red");

let h1 = $("<h1 id='d1'>一级标题</h1>")

2. 作为子元素添加

// 在$obj的末尾添加子元素newObj

$obj.append(newObj);

// 作为第一个子元素添加至$obj中

$obj.prepend(newObj);

3. 作为兄弟元素添加

// 在$obj的后面添加兄弟元素

$obj.after(newObj);

// 在$obj的前面添加兄弟元素

$obj.before(newObj);

4. 移除元素

// 移除$obj

$obj.remove();  

示例代码:

<script>// 创建新的span标签 let span = $('<span></span>');// 添加到我的div标签里面   作为最后一个子元素添加  // $('div').append(span)// 作为第一个子元素进行添加 // $('div').prepend(span)// before() 作为同级元素进行插入  在前面插入 $('div').before(span)// after() 作为同级元素进行插入  在后面插入 $('div').after(span)// 设置内容  添加类名 颜色 span.html('我是刚刚新建的span标签').attr('class','text').css('color','green')// 删除元素$('div').remove()</script>

8.动画效果

1. 显示和隐藏

     show(speed,callback)/hide(speed,callback)

    - speed   可选。规定元素从隐藏到完全可见的速度。默认为 "0"。

    - callback   可选。show 函数执行完之后,要执行的函数

2. 通过使用滑动下拉和上推效果,显示隐藏的被选元素( **只针对块元素** )

     slideDown(speed,callback)/slideUp(speed,callback)

3. 通过使用淡隐淡现方式显示效果,显示隐藏的被选元素

     fadeOut(speed,callback)/fadeIn(speed,callback)

   

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box {width: 300px;height: 300px;background-color: skyblue;}</style></head><body><div class="box"></div><button class='btn1'>隐藏</button><button class='btn2'>上推</button><button class='btn3'>若隐</button><script src='./jquery.js'></script><script>$('.btn1').click(function () {// // 点击隐藏按钮 box盒子就隐藏 // $('.box').hide(1000,function(){//     // 隐藏之后  按钮的文字 替换成 显示 //     $('.btn1').text('显示')// })// 如果字是隐藏就执行隐藏功能  否则就执行显示   if ($('.btn1').text() === '隐藏') {$('.box').hide(1000, function () {// 隐藏之后  按钮的文字 替换成 显示 $('.btn1').text('显示')})} else {// 不是就执行显示功能   $('.box').show(1000, function () {//显示状态下把文字 替换成 隐藏$('.btn1').text('隐藏')})}})// 上推和下拉效果  $('.btn2').click(function () {//slideUp上推方法 相当于把盒子高度 变为0 了 // $('.box').slideUp(1000, function () {//     $('.btn2').text('下拉')// })// 如果字按钮文字是上推就执行上推效果  if ($('.btn2').text() === '上推') {$('.box').slideUp(1000, function () {$('.btn2').text('下拉')})} else {// slideDown下拉方法$('.box').slideDown(1000, function () {$('.btn2').text('上推')})}})//若隐若现效果$('.btn3').click(function () {// 如果字按钮文字是若隐就执行若隐效果  if ($('.btn3').text() === '若隐') {// fadeOut若隐方法$('.box').fadeOut(1000, function () {$('.btn3').text('若现')})} else {// fadeIn若现方法$('.box').fadeIn(1000, function () {$('.btn3').text('若隐')})}})</script></body></html>

9.数据与对象遍历

1. $(selector).each() 方法规定为每个匹配元素规定运行的函数

    $(selector).each(function(index,element){})

    - *index* - 选择器的 index 位置

    - element - 当前的元素

2. $.each()函数是框架提供的一个工具类函数,通过它,你可以遍历对象、数组的属性值并进行处理。

    $.each(Object, function(index, data){});

    - *index* - 选择器的 index 位置

    - data- 当前的数据

10.jQuery事件处理

文档加载完毕原生JavaScript 方法:window.onload

$(function(){

  // 文档加载完毕后执行

})

区别:原生onload事件不能重复书写,会产生覆盖问题;jquery中对事件做了优化,可以重复书写ready方法,依次执行

$("div").on("click",function(){});

$("div").click(function(){});  

 

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

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

相关文章

【韩顺平Java笔记】第5章:程序控制结构

文章目录 102. 回顾上一章节103. 顺序控制103.1 顺序控制 104. 单分支使用104.1 分支控制 if-else 介绍104.2 单分支 105. 单分支流程图106. 双分支使用107. 双分支流程图108. 双分支练习题109. 多分支使用109.1 多分支的流程图 110. 多分支练习1111. 多分支练习2112. 嵌套分支…

最大正方形 Python题解

最大正方形 题目描述 在一个 n m n\times m nm 的只包含 0 0 0 和 1 1 1 的矩阵里找出一个不包含 0 0 0 的最大正方形&#xff0c;输出边长。 输入格式 输入文件第一行为两个整数 n , m ( 1 ≤ n , m ≤ 100 ) n,m(1\leq n,m\leq 100) n,m(1≤n,m≤100)&#xff0c;接…

ubuntu 开启root

sudo passwd root#输入以下命令来给root账户设置密码 sudo passwd -u root#启用root账户 su - root#要登录root账户 root 开启远程访问&#xff1a; 小心不要改到这里了&#xff1a;sudo nano /etc/ssh/ssh_config 而是&#xff1a;/etc/ssh/sshd_config sudo nano /etc/ssh…

828华为云征文|部署去中心化网络的 AI 照片管理应用 PhotoPrism

828华为云征文&#xff5c;部署去中心化网络的 AI 照片管理应用 PhotoPrism 一、Flexus云服务器X实例介绍二、Flexus云服务器X实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置2.4 Docker 环境搭建 三、Flexus云服务器X实例部署 PhotoPrism3.1 PhotoPrism 介绍3.2 PhotoPrism…

【Redis】如何在 Ubuntu 上安装 Redis 5

&#x1f970;&#x1f970;&#x1f970;来都来了&#xff0c;不妨点个关注叭&#xff01; &#x1f449;博客主页&#xff1a;欢迎各位大佬!&#x1f448; 本期内容主要介绍如何在 Ubuntu 上安装 Redis5 一些碎碎念&#xff1a; 本来这期内容介绍如何在 Centos 安装 Redis …

基于ScriptableObject设计游戏数据表

前言 本篇文章是针对之前对于ScriptableObject概念讲解的实际应用之一&#xff0c;在游戏开发中&#xff0c;我们可以使用该类来设计编辑器时的可读写数据表或者运行时的只读数据表。本文将针对运行时的只读数据表的应用进行探索&#xff0c;并且结合自定义的本地持久化存储方式…

cheese安卓版纯本地离线文字识别插件

目的 cheese自动化平台是一款可以模拟鼠标和键盘操作的自动化工具。它可以帮助用户自动完成一些重复的、繁琐的任务&#xff0c;节省大量人工操作的时间。可以采用Vscode、IDEA编写&#xff0c;支持Java、Python、nodejs、GO、Rust、Lua。cheese也包含图色功能&#xff0c;识别…

SpringBoot——基础配置

但是还需要删除pom.xml中的标签——模板的文件也同样操作 banner的选项——关闭 控制台 日志 banner图片的位置——还会分辨颜色 在 Java 的日志框架&#xff08;如 Logback、Log4j2 等&#xff09;中&#xff0c;logging.level.root主要用于设置根日志记录器的日志级别…

location指令

无前缀,必须以”/“开头 前缀""精准匹配。 前缀”^~“ 普通url匹配。 前缀”~“基于正则表达式的匹配&#xff0c; 区分大小写 前缀”~*“ 匹配优先级 locationlocation^~和无前缀/location ~或~* 1.无任何前缀 不加任何规则&#xff0c;默认大小写敏感&#x…

10.2 Linux_并发_进程相关函数

创建子进程 函数声明如下&#xff1a; pid_t fork(void); 返回值&#xff1a;失败返回-1&#xff0c;成功返回两次&#xff0c;子进程获得0(系统分配)&#xff0c;父进程获得子进程的pid 注意&#xff1a;fork创建子进程&#xff0c;实际上就是将父进程复制一遍作为子进程&…

【Linux操作系统】进程的创建与替换

目录 前言&#xff1a;一、进程创建1.fork();1.1 fork基本介绍1.2 fork的原理1.3 写时拷贝1.4 fork的使用场景1.5 fork调用失败的原因 2.clone() 二、进程替换(exec)1.替换原理2.替换函数3.函数解释4.函数理解 前言&#xff1a; 学习了Linux操作系统我们可以知道&#xff0c;进…

基于php摄影门户网站

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

Oracle架构之数据库备份和RAC介绍

文章目录 1 数据库备份1.1 数据库备份分类1.1.1 逻辑备份与物理备份1.1.2 完全备份/差异备份/增量备份 1.2 Oracle 逻辑备份1.2.1 EXP/IMP1.2.1.1 EXP导出1.2.1.2 EXP关键字说明1.2.1.3 导入1.2.1.4 IMP关键字说明 1.2.2 EXPDP/IMPDP1.2.2.1 数据泵介绍1.2.2.2 数据泵的使用 1.…

【STM32单片机_(HAL库)】4-3-2【定时器TIM】测量按键按下时间1——编程实现捕获功能

测量按键按下时长思路 测量按键按下时间实验目的 使用定时器 2 通道 2 来捕获按键 &#xff08;按键接PA0&#xff09;按下时间&#xff0c;并通过串口打印。 计一个数的时间&#xff1a;1us&#xff0c;PSC71&#xff0c;ARR65535 下降沿捕获、输入通道 2 映射在 TI2 上、不分…

华为-单臂路由

1、什么是单臂路由 单臂路由&#xff08;Single-Arm Routing&#xff09;是一种网络架构和配置技术&#xff0c;它允许路由器通过一个物理接口来管理多个虚拟局域网&#xff08;VLAN&#xff09;之间的通信。 这个物理接口被配置为Trunk模式&#xff0c;以便能够传输来自不同VL…

如何从huggingface下载

我尝试了一下若干步骤&#xff0c;莫名奇妙就成功了 命令行代理 如果有使用魔法上网&#xff0c;可以使用命令行代码&#xff0c;解决所有命令行连不上外网的问题&#xff1a; #配置http git config --global http.proxy 127.0.0.1:xxxx git config --global https.proxy 127…

移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——15.红黑树

1.红黑树的概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或 Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树确保没有一条路 径会比其他路径长出俩倍&#xff0c;…

k8s搭建双主的mysql8集群---无坑

《k8s搭建一主三从的mysql8集群---无坑-CSDN博客》通过搭建一主三从&#xff0c;我们能理解到主节点只有1个&#xff0c;那么承担增删改主要还是主节点&#xff0c;如果你在从节点上去操作增删改操作&#xff0c;数据不会同步到其他节点。本章我们将实现多主&#xff08;双主&a…

YOLO11关键改进与网络结构图

目录 前言&#xff1a;一、YOLO11的优势二、YOLO11网络结构图三、C3k2作用分析四、总结 前言&#xff1a; 对于一个科研人来说&#xff0c;发表论文水平的高低和你所掌握的信息差有着极大的关系&#xff0c;所以趁着YOLO11刚刚发布&#xff0c;趁热了解&#xff0c;先人一步对…

Linux-基础实操篇-组管理和权限管理(上)

Linux 组基本介绍 在 linux 中的每个用户必须属于一个组&#xff0c;不能独立于组外。在 linux 中每个文件 有所有者、所在组、其它组的概念。 用户和组的基本概念&#xff1a; 用户名&#xff1a;用来识别用户的名称&#xff0c;可以是字母、数字组成的字符串&#xff0…