一、简介与安装
jQuery是一个JavaScript函数库。
jQuery是一个轻量级的"写的少,做的多"的JavaScript库
jQuary 主要功能包括如下:
- html 的元素选取
- html的元素操作
- html dom遍历和修改
- js特效和动画效果
- css操作
- html事件操作
- ajax异步请求方式
网页中添加jQuary有两种方式:
-
第一种是在官网下载jQuary库,然后在
<head>
标签中添加使用HTML的<script>
标签引用它,或者在<body>
标签的最后引用它,需要注意的是要将jQuery的引用放在所有js引用的最前边,避免引入其他js文件时对它的调用造成影响。<script src="js/jquery-1.11.1.min.js"></script>
我们下载的jQuery库时有两个版本可供选择:
* Production version —— 用于实际的网页开发,jQuery文件是被压缩和精简的
* Development version —— 用于开发测试,jQuery文件具有可读性
-
第二种是通过 CDN 引用它,百度、谷歌、微软、新浪、菜鸟教程等的服务器都存有jQuery,我们可通过
<script>
标签的src
引用他们的CDN 库。注意:国内的建议使用百度、新浪等国内CDN地址,国外的可以使用谷歌和微软。 下面简单举两个例子:- 百度 CDN:
<head> <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"> </script> </head>
- 新浪 CDN:
<head> <script src="http://lib.sinaapp.com/js/jquery/2.0.2/jquery-2.0.2.min.js"> </script> </head>
二、基础内容
1. 选择器
通过选择器我们可以多单个或者多个HTML元素进行操作。jQuery 选择器基于元素的 id、类、类型、属性、属性值等"查找"(或选择)HTML 元素。
以美元符号开头: $()
来获取。
实例:
语法 | 描述 |
---|---|
$("p") | 元素选择器,获取页面中所有的<p> 标签 |
$("#test") | #id 选择器,获取id为test的元素,页面中id是唯一的 |
$(".test") | .class 选择器,获取class为test的元素 |
$("*") | 选取所有元素 |
$(this) | 选取当前 HTML 元素 |
$("p.intro") | 选取 class 为 intro 的<p> 元素 |
$("p:first") | 选取第一个<p> 元素 |
$("ul li:first") | 选取第一个<ul> 元素的第一个<li> 元素 |
$("ul li:first-child") | 选取每个<ul> 元素的第一个<li> 元素 |
$("[href]") | 选取带有 href 属性的元素 |
$("a[target='_blank']") | 选取所有 target 属性值等于 "_blank" 的 <a> 元素 |
$("a[target!='_blank']") | 选取所有 target 属性值不等于 "_blank" 的<a> 元素 |
$(":button") | 选取所有 type="button" 的 <input> 元素 和 <button> 元素 |
$("tr:even") | 选取偶数位置的 <tr> 元素 |
$("tr:odd") | 选取奇数位置的 <tr> 元素 |
2. 语法
* jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作。写法如下:
```
$(selector).action();
$("#test").hide(); - 隐藏所有 id="test" 的元素
```
* 文档就绪事件
为了防止文档在完全加载(就绪)之前运行 jQuery 代码,我们可以将标签的初始化事件和方法的绑定在如下函数中操作。
```
$(document).ready(function(){
// 开始写 jQuery 代码...
});
也可以简写为:
$(function(){
// 开始写 jQuery 代码...
});
```
3. 事件
鼠标 事件 | 鼠标事件触发方式 |
---|---|
click | 用户点击 HTML 元素时 |
dblclick | 双击元素 |
mouseenter | 鼠标指针穿过元素 |
mouseleave | 鼠标指针离开元素 |
mousedown | 鼠标指针移动到元素上方,并按下鼠标按键 |
mouseup | 在元素上松开鼠标按钮 |
hover | 当鼠标移动到元素上时,会触发指定的第一个函数(mouseenter);当鼠标移出这个元素时,会触发指定的第二个函数(mouseleave) |
键盘事件 | 键盘事件触发方式 |
keypress | |
keydown | 在键盘按下时触发 |
keyup | 在按键释放时触发 |
表单事件 | 表单事件触发方式 |
submit | 提交表单 |
change | 元素的值发生改变 |
focus | 元素获得焦点 |
blur | 元素失去焦点 |
文档/窗口事件 | 文档/窗口事件触发方式 |
load | 指定的元素(及子元素)已加载,适用于任何带有 URL 的元素(比如图像、脚本、框架、内联框架) |
resize | 调整浏览器窗口的大小 |
scroll | 所有可滚动的元素和 window 对象滚动 |
unload | 用户离开页面 |
三、页面效果
方法 | 描述 |
---|---|
show() | 显示 |
hide() | 隐藏 |
toggle() | 切换 hide() 和 show() 方法 |
fadeIn() | 淡入已隐藏的元素 |
fadeOut() | 淡出可见元素 |
fadeToggle() | fadeIn() 与 fadeOut() 方法之间进行切换 |
fadeTo() | 渐变为给定的不透明度(值介于 0 与 1 之间) |
slideDown() | 向下滑动元素 |
slideUp() | 向上滑动元素 |
slideToggle() | 在 slideDown() 与 slideUp() 方法之间进行切换 |
animate() | 添加动画效果,可操作所有 CSS 属性,也可添加动画队列,实现一系列的动画效果 |
stop() | 停止动画或效果,在它们完成之前,参数属性: stopAll 参数规定是否应该清除动画队列;goToEnd 参数规定是否立即完成当前动画 |
注:以上方法除标注不带参数的都可带有参数,speed代表速度;callback代表完成后所执行的函数。
四、页面元素 HTML
-
获取内容
- text() — 设置或返回所选元素的文本内容
- html() - 设置或返回所选元素的内容,包括 HTML 标记(span标签)
- val() - 设置或返回表单字段的值(input、 div标签)
jQuery HTML 属性操作方法
方法 | 描述 |
---|---|
val() | 设置或返回匹配元素的值 |
html() | 设置或返回匹配的元素集合中的 HTML 内容 |
attr() | 设置或返回匹配元素的属性和值 |
addClass() | 向匹配的元素添加指定的类名 |
hasClass() | 检查匹配的元素是否拥有指定的类 |
removeAttr() | 从所有匹配的元素中移除指定的属性 |
removeClass() | 从所有匹配的元素中删除全部或者指定的类 |
toggleClass() | 从匹配的元素中添加或删除一个类 |
append() | 在被选元素的结尾插入内容 |
prepend() | 在被选元素的开头插入内容 |
after() | 在被选元素之后插入内容 |
before() | 在被选元素之前插入内容 |
width() | 设置或返回元素的宽度(不包括内边距、边框或外边距) |
height() | 设置或返回元素的高度(不包括内边距、边框或外边距) |
innerWidth() | 返回元素的宽度(包括内边距) |
innerHeight() | 返回元素的高度(包括内边距) |
outerWidth() | 返回元素的宽度(包括内边距和边框) |
outerHeight() | 返回元素的高度(包括内边距和边框) |
empty() | 删除被选元素的子元素 |
remove() | 删除被选元素及其子元素 $("p").remove(".italic"); 过滤被删除的元素 |
五、与后台的交互 Ajax
AJAX 是与服务器交换数据的技术,它在不重载全部页面的情况下,实现了对部分网页的更新。它不是一种新的编程语言,而是一种使用现有标准的新方法。
AJAX = 异步 JavaScript 和 XML。
通过 jQuery AJAX 方法,您能够使用 HTTP Get 和 HTTP Post 从远程服务器上请求文本、HTML、XML 或 JSON - 同时您能够把这些外部数据直接载入网页的被选元素中。
load() 方法
此方法是jQuery从后台加载数据,并将返回的数据展示在页面中。
语法:
$(selector).load(URL,data,callback);
load()方法也可以加载本地文件
必需的 URL 参数规定您希望加载的 URL。
可选的 data 参数规定与请求一同发送的查询字符串键/值对集合。
-
可选的 callback 参数是 load() 方法完成后所执行的函数名称。回调函数还可以设置不同的参数:
- responseTxt - 包含调用成功时的结果内容
- statusTXT - 包含调用的状态
- xhr - 包含 XMLHttpRequest 对象
$("button").click(function(){
$("#div1").load("demo_test.txt",function(responseTxt,statusTxt,xhr){
if(statusTxt=="success")
alert("外部内容加载成功!");
if(statusTxt=="error")
alert("Error: "+xhr.status+": "+xhr.statusText);
});
});
```
HTTP 网络请求 GET POST
jQuery中客户端与服务端有两种方式进行交互,常用的方法就是GET 和 POST:
方法 | 描述 |
---|---|
GET | 从指定的资源请求数据,基本上用于从服务器获得(取回)数据,可能返回缓存数据 |
POST | 向指定的资源提交要处理的数据,也可以从服务端返回数据,但不会缓存数据,常用于请求时上传数据 |
$.get() 方法
$.get() 方法通过 HTTP GET 请求从服务器上请求数据。
基本语法:
$.get(URL,callback);
实例:
$("button").click(function(){
$.get("demo_test.php",function(data,status){
alert("数据: " + data + "\n状态: " + status);
});
});
$.post() 方法
$.post() 方法通过 HTTP POST 请求从服务器上请求数据。
基本语法:
$.post(URL,data,callback);
实例:
$("button").click(function(){
$.post("/try/ajax/demo_test_post.php",
{
name:"biubiubiu",
url:"http://eyimu.com"
},
function(data,status){
alert("数据: \n" + data + "\n状态: " + status);
});
});