简介
jQuery是对原生JavaScript Dom操作进行封装了的一个库
目的是为了更简易的操作JavaScript。
基本使用
"$“符号是jQuery的标志,等价于"jQuery”。顶级对象==(window)
入口函数:
// 第一种
$(document).ready(function() {
// js 代码
})
// 等待DOM结构渲染完毕即可执行内部代码,不必等到所有的外部资源加载完毕,jQuery帮我们完成了封装。
// 相当于原生js中的DOMContentLoaded
// 第二种
$(function() {
// js 代码
})
jQuery对象和原生DOM对象相互转换
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="demo"></div>
<script>
var div = document.querySelector('div') // DOM对象
div2 = $("div") // jQuery对象
// DOM转换jQuery对象
div3 = $(div)
// jQuery转换DOM对象
div4 = div2[0] // jQuery会把所选择的对象封装成伪数组,使用索引可以提取
</script>
</body>
</html>
jQuery 基础选择器
原生JS获取元素方式很多,兼容情况不一致,因此jQuery给我们做了封装,使获取元素统一标准。
$("选择器") // 里面直接写CSS选择器即可,但是要加引号
css选择器
名称 | 用法 | 描述 |
---|---|---|
ID选择器 | $("#id") | 获取指定ID的元素 |
全选选择器 | $("*") | 匹配所有元素 |
类选择器 | $(".class") | 获取同一类class的元素 |
标签选择器 | $(“div”) | 获取同一类标签的所有的元素 |
并集选择器 | $(“div, p, li”) | 选取多个元素 |
交集选择器 | $(“li.current”) | 交集元素 |
子代选择器 | $(“ul>li”) | 使用>号, 获取亲儿子层级的元素,注意并不会获取孙子层级的元素 |
后代选择器 | $(“ul li”) | 使用空格,代表后代选择器,获取ul下的所有li元素,包括孙子等 |
筛选选择器
语法 | 用法 | 描述 |
---|---|---|
:first | $(“li:first”) | 获取第一个li元素 |
:last | $(“li:last”) | 获取最后一个li远元素 |
:eq(index) | $(“li:eq(2)”) | 获取到的li元素中,选择索引号2的元素,索引号index从0开始 |
:odd | $(“lo:odd”) | 获取到的li元素,选择索引号为奇数的元素 |
:even | $(“li:even”) | 获取到的li元素中,选择索引号为偶数的元素 |
筛选方法
语法 | 用法 | 说明 |
---|---|---|
parent() | $(“li”).parent() | 查找父级 |
children(selector) | $(“ul”).children(“li”) | 相当于$(“ul > li”), 查找一级(亲儿子) |
find(selector) | $(“ul”).find(“li”) | 相当于$(“ul li”), 后代选择器 |
siblings(selector) | $(".first").siblings(“li”) | 查找兄弟节点,不包括自己本身 |
nextAll([expr]) | $(".first").nextAll() | 查找当前元素之后的所有同辈元素 |
prevtAll([expr]) | $(".first").prevAll() | 查找当前元素之前所有的同辈元素 |
hasClass(class) | $(“div”).hasClass(“protected”) | 检查当前的元素是否含有某个特定的类,如果有,返回true |
eq(index) | $("‘li’").eq(2) | 相当于$(“li:eq(2)”), index从0开始 |
事件注册
单个事件注册
$(function(){
$("div").click(function() {
$(this).css("background", "purple")
})
})
事件处理 on() 绑定事件
element.on(events, [selector], fn)
$("div").on({
mouseenter: function() {
$(this).css("backgroud", "skyblue");
},
click: function() {
$(this).css("background", "purple");
},
事件3:function(){},
事件4:function(){}
})
事件解绑 off
$("div").off(); // 解绑所有
$("div").off("click", [obj]); // 解绑某一个对象的,,点击事件
只绑定一次
$("div").one("click", "li", function() {})
自动触发事件
// 第一种
element.click() // 简写形式
// 第二种
element.tigger("type")
// 第三种
element.triggerHandler(type)
AJAX
Asynchronous JavaScript and XML(异步的JavaScript和XML)
AJAX是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术
Ajax不是一门新的编程语言,二十一中用于创建更好更快一级交互性更强的Web应用程序的技术
创痛的网页,想要更新内容或者提交一个表单,都需要重新加载整个网页。
使用ajax技术的网页,通过在后台服务器进行少量的数据交互,就可以实现异步局部更新
JQuery Ajax本质就是XMLHttpRequest,对他进行了封装,方便调用!
1. jQuery.get(...)
所有参数:
url: 待载入的URL地址
data: 待发送 Key/value 参数。
success: 载入成功的回调函数。
dataType: 返回内容格式,xml, json, script, text, html
2.jQuery.post(...)
所有参数:
url: 待载入的URL地址
data: 待发送 Key/value 参数。
success: 载入成功的回调函数。
dataType: 返回内容格式,xml, json, script, text, html
...
通用方法:
jQuery.ajax(...)
部分参数:
url: 请求地址
type: GET、POST(1.9.0以后用method)
headers: 请求头
data: 要发送的数据
contentType:即将发送信息至服务器的内容编码类型(默认L"application/x-www-form-urlencoded; charset=UTF-8")
async:是否异步
timeout:设置请求超时事件(毫秒)
beforeSend:发送请求前执行的函数(全局)
complete:完成之后执行的回调函数(全局)
success:成功之后执行的回调函数(全局)
error:失败之后执行的回调函数(全局)
accepts:通过请求头发送给服务器,告诉服务器当前客户端可接收的数据类型
dataType:将服务器返回的数据转换成指定类型
"XML": 将服务器返回的内容转换成xml格式
"text":将服务器返回的内容转换成普通文本格式
"html":将服务器返回的内容转换成普通文本格式,在DOM忠时,如果包含JavaScript标签,则会尝试去执行
"script":将服务器返回值当作Javascript去执行,然后在将服务端返回的内容转换成普通文本格式
"json": 将服务端返回的内容转换成相应的Javascript对象
"jsonp"; JSONP格式使用JSONP行是调用函数时,如"myurl?callback=?" Jquery将自动替换?为正确的函数名,以执行回调函数