jQuery官网: https://jquery.com/
jQuery对象就是通过jQuery包装DOM产生的对象,jQuery对象可以使用jQuery里的方法,但是不能使用DOM对象里的方法,同理,DOM对象也不能使用jQuery里的方法。
我们在声明一个jQuery对象变量的时候在变量名前加一个$。
var $variable = jQuery对象
var variable = DOM对象
$variable[0] // jQuery对象转DOM对象
id选择器:
$("#id")
class选择器:
$(".className")
标签选择器
$("tagName")
配合使用:
$("div.className") // 找类中的div标签
所有元素选择器:
$("*")
组合选择器:
$("#id, .className, tagName")
层级选择器:
$("div span"); //div的所有后代中的span
$("div > span"); //div的儿子spqn
$("div + span"); //紧挨在div后的span
$("div ~ span"); //div之后的所有同级span
:first // 第一个
:last // 最后一个
:eq(index)// 索引等于index的那个元素
:even // 匹配所有索引值为偶数的元素,从 0 开始计数
:odd // 匹配所有索引值为奇数的元素,从 0 开始计数
:gt(index)// 匹配所有大于给定索引值的元素
:lt(index)// 匹配所有小于给定索引值的元素
:not(元素选择器)// 移除所有满足not条件的标签
:has(元素选择器)// 选取所有包含一个或多个标签在其内的标签(指的是从后代元素找)
练习:自定义模态框,使用jQuery实现弹出和隐藏功能。
[attribute]
[attribute = value] // 属性等于
[attribute != value] // 属性不等于
<body>
<input type="text">
<input type="password">
<input type="email">
<script>
// 取input标签中类型未email的标签
$("input[type='email']")
script>
body>
:text
:password:file
:radio
:checkbox
:submit
:reset
:button
表单对象属性:
:enabled
:disabled
:checked
:selected
下一个元素
$("#id").next()
$("#id").nextall()
$("#id").nextUntil("#d2") //到哪个标签停止
上一个元素
$("#id").prev()
$("#id").prevall()
$("#id").prevUntil("#id2")
父亲元素
$("#id").parent()
$("#id").parents() // 查找当前元素的所有的父辈元素
$("#id").parentsUntil("#id2") // 查找当前元素的所有的父辈元素,直到遇到匹配的那个元素为止。
儿子和兄弟元素
$("#id").children();// 儿子们
$("#id").siblings();// 兄弟们
筛选
$("div").filter(".c1") // 从结果集中过滤出有c1样式类的
.first() // 获取匹配的第一个元素
.last() // 获取匹配的最后一个元素
.not() // 从匹配元素的集合中删除与指定表达式匹配的元素
.has() // 保留包含特定后代的元素,去掉那些不含有指定后代的元素。
.eq() // 索引值等于指定值的元素
样式类
addClass();// 添加指定的CSS类名。
removeClass();// 移除指定的CSS类名。
hasClass();// 判断样式存不存在
toggleClass();// 切换CSS类名,如果有就移除,如果没有就添加。
offset()// 获取匹配元素在当前窗口的相对偏移或设置元素位置
position()// 获取匹配元素相对父元素的偏移
scrollTop()// 获取匹配元素相对滚动条顶部的偏移
scrollLeft()// 获取匹配元素相对滚动条左侧的偏移
height()
width()
innerHeight()
innerWidth()
outerHeight()
outerWidth()
HTML代码:
html()// 取得第一个匹配元素的html内容
html(val)// 设置所有匹配元素的html内容
文本值:
text()// 取得所有匹配元素的内容
text(val)// 设置所有匹配元素的内容
值:
val()// 取得第一个匹配元素的当前值
val(val)// 设置所有匹配元素的值
val([val1, val2])// 设置多选的checkbox、多选select的值
用于ID等或自定义属性
attr(attrName)// 返回第一个匹配元素的属性值
attr(attrName, attrValue)// 为所有匹配元素设置一个属性值
attr({k1: v1, k2:v2})// 为所有匹配元素设置多个属性值
removeAttr()// 从每一个匹配的元素中删除一个属性
用于checkbox和radio
prop() // 获取属性
removeProp() // 移除属性
prop和attr的区别:attr全称attribute(属性) ,prop全称property(属性),虽然都是属性,但他们所指的属性并不相同,attr所指的属性是HTML标签属性,而prop所指的是DOM对象属性,可以认为attr是显式的,而prop是隐式的。
click(function(){...})
hover(function(){...})
blur(function(){...})
focus(function(){...})
change(function(){...})
keyup(function(){...})
方式一:
.事件(function () {
事件代码
})
方式二:
.on(‘事件’,function(){
事件代码
})
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>阻止默认事件title>
head>
<body>
<form action="">
<button id="b1">点我button>
form>
<script src="jquery-3.3.1.min.js">script>
<script>
$("#b1").click(function (e) {
alert(123);
//return false;
e.preventDefault();
});
script>
body>
html>
涉及到标签嵌套并且有相同事件的时候,那么会逐级往上反馈并执行。
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>阻止事件冒泡title>
head>
<body>
<div>
<p>
<span>点我span>
p>
div>
<script src="jquery-3.3.1.min.js">script>
<script>
$("span").click(function (e) {
alert("span");
e.stopPropagation();
});
$("p").click(function () {
alert("p");
});
$("div").click(function () {
alert("div");
})
script>
body>
html>
创建标签的两种方式:
事件绑定默认情况下是不会对动态创建的标签生效的,如果想生效需要事件委托。
$("table").on("click", ".delete", function () {
// 删除按钮绑定的事件
})