5.jQueryAjax

1.jQuery

什么是 jQuery ?

jQuery是一个JavaScript函数库。jQuery是一个轻量级的"写的少,做的多"的JavaScript库。包含以下功能:

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

引用:

 <head><script src="jquery-1.10.2.min.js"></script></head>

jQuery 语法

jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作。

基础语法: $(selector).action()

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

实例:

$(this).hide() - 隐藏当前元素

$("p").hide() - 隐藏所有段落

$("p .test").hide() - 隐藏所有 class="test" 的段落

$("#test").hide() - 隐藏所有 id="test" 的元素

文档就绪事件

您也许已经注意到在我们的实例中的所有 jQuery 函数位于一个 document ready 函数中:

 $(document).ready(function(){// 开始写 jQuery 代码...
}); 或是$(function(){// 开始写 jQuery 代码...
}); 

jQuery 基本选择器

//元素选择器
$(document).ready(function(){ $("button").click(function(){ $("p").hide();   //选择P标签
 }); 
});//#ID选择器
$(document).ready(function(){ $("button").click(function(){ $("#test").hide(); }); 
});//.class 选择器
$(document).ready(function(){ $("button").click(function(){ $(".test").hide(); }); 
});//

jQeury基本操作

//addClass()方法给元素加class
$(".text-primary").addClass("animated shake");//删除HTML元素的class
$("#target2").removeClass("btn-default");//改变HTML元素的CSS样式
$("#target1").css("color", "blue"); //注意此处属性和值都是“”//设置元素不可用
$("button").prop("disabled", true);//改变元素中的文本
$("h3").html("<em>jQuery Playground</em>");//删除一个HTML元素
$("#target4").remove();//使用appendTo()移动HTML元素
$("#target4").appendTo("#left-well");//使用clone()方法复制元素
$("#target2").clone().appendTo("#right-well");//使用parent()操作父级元素
$("#left-well").parent().css("background-color", "blue")//使用parent()操作子级元素
$("#left-well").children().css("color", "blue")//使用target:nth-child(n) CSS选择器获取子元素
$(".target:nth-child(3)").addClass("animated bounce");//使用选择器操作偶数索引元素,因为索引0对应的是第一个元素,所以奇数索引,偶数元素,
$(".target:odd").addClass("animated shake");偶数
$(".target:even").addClass("animated shake");奇数

2.Ajax

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

AJAX的工作原理相当于在用户和服务器之间加了—个中间层(AJAX引擎),使用户操作与服务器响应异步化。
先来敲个Ajax实例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest){// code for IE7 , Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();}
else{// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
xmlhttp.onreadystatechange=function(){if (xmlhttp.readyState==4 && xmlhttp.status==200){document.getElementById("myDiv").innerHTML=xmlhttp.responseText;}}
xmlhttp.open("GET","/statics/demosource/ajax_info.txt",true);
xmlhttp.send();
}
</script>
</head>
<body><div id="myDiv"><h2>使用 AJAX 修改该文本内容</h2></div>
<button type="button" onclick="loadXMLDoc()">修改内容</button></body>
</html>

AJAX - 创建 XMLHttpRequest 对象

XMLHttpRequest 是 AJAX 的基础。XmlHttpRequest 术语缩写为XHR,中文可以解释为可扩展超文本传输请求。 

XMLHttpRequest 对象可以在不向服务器提交整个页面的情况下,实现局部更新网页。

构建代码:

var xmlhttp; 
if (window.XMLHttpRequest) {// code for IE7 , Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } 
else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }

XHR 请求

如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法:

xmlhttp.open("GET","ajax_info.txt",true); 
xmlhttp.send();

open(method,url,async):

  • method:请求的类型;GET 或 POST

  • url:文件在服务器上的位置

  • async:true(异步)或 false(同步)

send(string):将请求发送到服务器。

  • string:仅用于 POST 请求

GET请求 :

xmlhttp.open("GET","demo_get2.html?fname=Henry&name=Ford",true); 
xmlhttp.send();

POST请求:

xmlhttp.open("POST","ajax_test.html",true); 
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
xmlhttp.send("fname=Henry&lname=Ford");

XHR 响应

获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。

  • responseText:获得字符串形式的响应数据。
  • responseXML:获得 XML 形式的响应数据。
<!--responseText -->
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;<!--responseXML -->
xmlDoc=xmlhttp.responseXML; 
txt=""; 
x=xmlDoc.getElementsByTagName("ARTIST"); 
for (i=0;i<x.length;i  ) { txt=txt   x[i].childNodes[0].nodeValue   "<br>"; } 
document.getElementById("myDiv").innerHTML=txt;

当发送一个请求后,客户端需要确定这个请求什么时候会完成,因此,XMLHttpRequest对象提供了 onreadystatechange 事件机制来捕获请求的状态,继而实现响应。

在 onreadystatechange 事件中,我们规定当服务器响应已做好被处理的准备时所执行的任务。

当 readyState 等于 4 且状态为 200 时,表示响应已就绪:

xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } }

XHR.readyState状态的变化如下:

  • 0:请求未初始化,还没有调用 open()。 
  • 1:请求已经建立,但是还没有发送,还没有调用 send()。  
  • 2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。  
  • 3:请求在处理中;通常响应中已有部分数据可用了,没有全部完成。  
  • 4:响应已完成;您可以获取并使用服务器的响应了。

 


更多专业前端知识,请上 【猿2048】www.mk2048.com

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

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

相关文章

处理JUnit中异常的另一种方法:catch-exception

JUnit中有许多处理异常的方法 &#xff08;JUnit中有3种处理异常的方法。选择哪一种呢&#xff1f; JUnit ExpectedException规则&#xff1a;超越了基础 &#xff09;。 在本文中&#xff0c;我将介绍建议尝试的catch-exception库。 简而言之&#xff0c; catch-exceptions是一…

SQL Server 索引结构及其使用(二)

KeyLife富翁笔记 作者: HongYuan标题: SQL Server 索引结构及其使用&#xff08;二&#xff09; 关键字: 分类: 个人专区 密级: 公开 (评分:, 回复: 0, 阅读: 552) SQL Server 索引结构及其使用&#xff08;二&#xff09; 作者&#xff1a;freedk 一、深入浅出理解索引…

mysql 笔记打包下载_mysql 5.7压缩包安装笔记

重装系统之后准备安装mysql,看到官网上有mysql 5.7.10可以下载就点了,然后就开始了漫长的安装路程,总共折腾差不多一个多小时,最后终于安装成功了,这里把安装过程写下来,给自己做个笔记,也给后来人一个安装提示.1.下载安装包直接点击或者复制之后就可以下载了,不嫌麻烦或者想体…

react脚手架搭建项目目录介绍

readme.md --项目介绍自定义一些项目信息以及简单使用 package.json --dependencies下管理生产环境所用的包及版本 ---devDependencies里得插件只用于开发环境&#xff0c;不用于生产环境      ---name项目名称 ---version项目版本 ---scripts项目启动等功能设置 package…

测试数据构建器和对象母亲:另一种眼神

在测试中构造对象通常是一件艰苦的工作&#xff0c;通常会产生大量可重复且难以阅读的代码。 有两种用于处理复杂测试数据的常见解决方案&#xff1a; Object Mother和Test Data Builder 。 两者都有优点和缺点&#xff0c;但是&#xff08;巧妙地&#xff09;结合可以为您的测…

java 递归函数_浅谈java递归函数

递归函数的定义&#xff1a;递归函数即自调用函数&#xff0c;在函数体内直接或间接的调用自己&#xff0c;即函数的嵌套是函数本身。打个生动的比喻&#xff1a;我们可以把” 递归 “比喻成 “查字典 “&#xff0c;当你查一个词&#xff0c;发现这个词的解释中某个词仍然不懂…

这几周的一些破事

1:明基几百人同时大跳槽到另外一家公司明基上海有限公司(苏州分公司),当然也包括我了.2:BQM GSR开始了,搞PES,搞ProtoTYpe,搞PIS,没有啥意思,对工作没有什么热情了,精力也不是很集中.3:日本的破CR迟迟不肯上线,时不时来骚扰一下,烦的要死,为什么我们就该这么忙,可恨.4:看到哪些…

oracle data guard --理论知识回顾02

继上一篇 管理影响物理standby的事件 1 创建表空间或数据文件初始化参数standby_file_management用来控制是否自动将primary数据库增加表空间或数据文件的改动&#xff0c;传播到standby服务器AUTO/MANUALAUTO:自动传播到standbyMANUAL:需要手动复制文件到standby&#xff0c;并…

Java 8 LongAdders:管理并发计数器的正确方法

我只是喜欢新玩具&#xff0c;而Java 8有很多 。 这次我想谈谈我的最爱之一-并发加法器。 这是一组用于管理由多个线程编写和读取的计数器的新类。 新的API有望显着提高性能&#xff0c;同时仍然使事情变得简单明了。 自从多核架构问世以来人们一直在管理并发计数器&#xff0…

asp: menu 父级选中

最近比较忙&#xff0c;其中一个项目中用到了菜单&#xff0c;结果User比较难搞定&#xff0c;非要什么有父级菜单选中的样式&#xff0c;就像windows的菜单效果差不多的那种&#xff0c;鼠标飘在子结点上&#xff0c;父结点也要保留反白的选中样式&#xff0c;唉&#xff0c;U…

java 内部类 单例_Java单例模式的几种实现

一&#xff1a;静态内部类实现单例模式原理&#xff1a;通过一个静态内部类定义一个静态变量来持有当前类实例&#xff0c;在类加载时就创建好&#xff0c;在使用时获取。缺点&#xff1a;无法做到延迟创建对象&#xff0c;在类加载时进行创建会导致初始化时间变长。public cla…

JS中ptototype和__proto__的关系

学到原型的时候感觉头都大了/(ㄒoㄒ)/~~ 尤其是ptototype和__proto__ 傻傻分不清 通过多番查找资料&#xff0c;根据自己的理解&#xff0c;总结如下&#xff1a; 一、构造函数&#xff1a; 构造函数&#xff1a;通过new关键字可以用来创建特定类型的对象的函数。比如像Obje…

函数与匿名函数

函数与匿名函数一、函数 在计算机科学中&#xff0c;函数是程序负责完成某项特定任务的代码单元&#xff0c;具有一定的独立性。 1.函数的定义 在Python中&#xff0c;函数在定义时需要满足这样的规则&#xff1a; 使用关键字def引导&#xff1b;def后面是函数的名称&#xff0…

[最短路]飞行

题目描述 WFYZ的校园很大&#xff0c;这里生活着很多生物&#xff0c;比如住在钟楼上的的鸽子&#xff0c;其中鸽子冉冉和她的妹妹凝凝白天在不同的地方吃虫&#xff0c;而在晚上她们都回到钟楼休息。她俩是两只懒鸟&#xff0c;于是提出了一个计划&#xff0c;尽量减少她们在飞…

Java状态和策略设计模式之间的差异

为了在Core Java应用程序中正确使用状态和策略设计模式&#xff0c;对于Java开发人员清楚地了解它们之间的区别很重要。 尽管状态和策略设计模式的结构相似&#xff0c;并且都基于开放式封闭设计原则&#xff0c;从SOLID设计原则表示为“ O”&#xff0c;但它们在意图上完全不同…

【原创】系统分析师--任重而道远

今天查到了系统分析师的成绩。有坏消息&#xff0c;也有好消息。 坏消息当然就是意料之中的没过了&#xff0c;好消息是我基本上没有花什么时间去准备&#xff0c;但是结果却比想象中的要好。 案例分析这一场过了。基础知识差几分&#xff0c;论文只是及格分的一半&#xf…

XML文档的简易增删查改

dom4j解析一、利用dom4j操作元素节点 1.查询第一本书的书名&#xff0c;并输出到控制台 2.给第一本书添加一个特价节点, 并修改第一本书的售价节点的内容为19.8元 3.删除第二本书的作者节点二、利用dom4j操作属性节点 1.给第一本书添加一个属性&#xff0c;如&#xff1a;出版社…

廖雪峰Java3异常处理-1错误处理-2捕获异常

1捕获异常 1.1 finally语句保证有无错误都会执行 try{...}catch (){...}finally{...} 使用try...catch捕获异常可能发生异常的语句放在try{...}中使用catch捕获对应的Exception及其子类1.2 捕获多个异常 try{...} catch() {...} catch(){...}finally{..} 使用多个catch子句&…

更新数据库

方法一&#xff1a;在对SQL数据库进行更新时&#xff0c;用CommandBuilder对像来自动构建sql命令&#xff0c;来起到更新的作用;这种方法用起来比较方便&#xff0c;具体代码如下&#xff1a; 以下代码都在xp系统下测试通过 环境&#xff1a;vs.net2005 \ sql server 2000\xpus…

在崩溃或断电后测试Lucene的索引耐久性

Lucene有用的事务功能之一是索引持久性 &#xff0c;它可以确保一旦成功调用IndexWriter.commit &#xff0c;即使操作系统或JVM崩溃或断电&#xff0c;或者您杀死-KILL JVM进程&#xff0c;重启后索引也将保持完整&#xff08;未损坏&#xff09;&#xff0c;并将反映崩溃前的…