一、jQuery简介
1、JS的onload事件只能实现一次,而且实现的是最后一次
2、jQ可以实现多次,按代码顺序实现
3、基本语法 通过$ 符定义jQuery, $( 选择器 ) . 方法 ( )
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jQuery</title>
<script type="text/javascript" src="js/jQuery3.6.0.js"></script>
</head>
<body>
<script>
// JS onl oad事件只能实现一次,而且是最后一次
window.onload = function(){
alert("hello js");
}
window.onload = function(){
alert("hello js--1");
}
window.onload = function(){
alert("hello js--2");
}
// jQuery 可以实现多次加载
$(document).ready(function(){
alert("hello jQuery");
})
$(document).ready(function(){
alert("hello jQuery--1");
})
$(document).ready(function(){
alert("hello jQuery--2");
})
// 基本语法
// 通过$符定义jQuery
// $(选择器).方法()
</script>
</body>
</html>
4、在jQuery中声明变量需在变量前加$
5、Jq转为JS对象 var jsDiv = $jqObj[0];
6、js转为jq var $jqDiv = $(jsdiv);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jQuery</title>
<script type="text/javascript" src="js/jQuery3.6.0.js"></script>
</head>
<body>
<div id="box"></div>
<script>
$(document).ready(function(){
// $区别 jQ和JS的变量
var $jqObj = $("#box");
$jqObj.html("hello");
// jq转换为JS对象,函数不能转
var jsDiv = $jqObj[0];
// JS转为jQ对象
var $jqdiv = $ (jsDiv)
})
</script>
</body>
</html>
7、Jquery的三种书写方法
①$(document).ready( function () {} )
②$().ready( function () {} )
③$( function () {} )
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jQuery</title>
<script type="text/javascript" src="js/jQuery3.6.0.js"></script>
</head>
<body>
<div id="box"></div>
<div class="cls"></div>
<script>
// 页面加载函数
// 第一种方法
$(document).ready(function (){
})
// 第二种方法
$().ready(function(){
})
// 第三种方法
$(function(){
})
</script>
</body>
</html>
二、jQuery选择器
Ⅰ、基本选择器
①ID选择器
语法 $(“#id”)
相当于JS中的document.getElementById(“id”)
②元素选择器
语法 $(“标签名称”)
相当于JS中的document.getElementsByTagName(“标签名称”)
③类名选择器
语法 $(“.class”)
相当于JS中的document.getElementsByClassName(“class”)
④复合选择器
语法$(“selector1, selectpr2, ... ”)
⑤通配符选择器
语法 $(“ * ”)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jQuery 基本选择器 </title>
<script type="text/javascript" src="js/jQuery3.6.0.js"></script>
</head>
<body>
<div id="box"></div>
<div class="cls"></div>
<span> </span>
<p></p>
<script>
$(function () {
// id选择器
var $jqDiv = $("#box");
$jqDiv.html("ID选择器");
// 元素选择器
var $jqDiv1 = $("div");
$jqDiv1.html("元素选择器");
// 类选择器
var $jqDiv2 = $(".cls");
$jqDiv2.html("类选择器");
// 复合选择器
var $jqfh = $("span, p");
$jqfh.html("复合选择器");
// 通配符选择器
var $jqt = $("*");
$jqt.html("通配符选择器");
})
</script>
</body>
</html>
Ⅱ、层次选择器
①父子(先辈后辈)选择器
语法 $(“ancestor descendant”)
②父子选择器
语法 $(“parent>child”)
③兄弟选择器
语法 $(“prev+next”)
④同级选择器
语法 $(“prev ~ siblings”)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jQuery 层次选择器</title>
<script type="text/javascript" src="js/jQuery3.6.0.js"></script>
</head>
<body>
<div id="box">
<p> HELLO </p>
<div>
<p> WORLD</p>
</div>
</div>
<ul id="l">
<li> 111 </li>
<li> 222 </li>
</ul>
<div id="d"> aaa </div>
<div > bbb </div>
<div > ccc </div>
<div > ddd </div>
<script>
$(function(){
// 先辈后辈选择器(父子选择器)
var $jqObj = $("#box p");
console.log($jqObj.html());
// 父子选择器
var $jqObj1 = $("ul>li");
console.log($jqObj1.html());
var $jqObj2 = $("#l>li");
console.log($jqObj2.html());
// 兄弟选择器,只匹配一个
var $jqObj3 = $("#d+div");
console.log($jqObj3.html());
// 同级选择器
var $jqObj4 = $("#d~div");
$jqObj4.html("---");
})
</script>
</body>
</html>
Ⅲ、过滤选择器
①简单过滤器
:first 只匹配第一个元素
:last 只匹配最后一个元素
:even 所有的奇数
:odd 所有的偶数
:eq(index) 指定元素(从0开始)
:gt(index) 比...大
:lt(index) 比...小
:header 匹配标签
:not() 去除
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jQuery简单过滤选择器</title>
<script type="text/javascript" src="js/jQuery3.6.0.js"></script>
</head>
<body>
<p class="p1"> aaa </p>
<p class="p1"> bbb </p>
<p class="p1"> ccc </p>
<p class="p1"> ddd </p>
<p class="p1"> eee </p>
<p class="p2"> fff </p>
<h2> 二级标题 </h2>
<script>
$(function(){
// :first,只匹配第一个元素
$(".p1:first").html("first");
// :last,只匹配最后一个
$(".p1:last").html("last");
// :even,所有的奇数
$(".p1:even").html("even");
// :odd,所有的偶数
$(".p1:odd").html("odd");
// :eq(index),指定元素,从0开始
$(".p1:eq(2)").html("第三个");
// :gt(index),比...大
$(".p1:gt(2)").html("比第三个大");
// :lt(index),比...小
$(".p1:lt(2)").html("比第三个小");
// :header,匹配标签
$(":header").html("标题过滤");
// :not(),去除
$("p:not(.p1)").html("hello");
})
</script>
</body>
</html>
②内容过滤器
contains(xx) 匹配包含的元素
empty 匹配空的,有空格则不是空
has(xx) 匹配含有的元素
parent 匹配父标签
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jQuery内容过滤选择器</title>
<script type="text/javascript" src="js/jQuery3.6.0.js"></script>
</head>
<body>
<p class="p1"> aaa </p>
<p class="p1"> bbb </p>
<p class="p1"> ccc </p>
<p class="p1"></p>
<table>
<tr>
<td>
<p>this is a text</p>
</td>
<td>
<p> today is a good day</p>
<span></span>
</td>
</tr>
</table>
<script>
$(function(){
// contains(xx) 匹配包含的元素
$(".p1:contains('b')").html("包含b");
// empty 匹配空的,有空格则不是空的
$(".p1:empty").html("空的");
// has(xx) 匹配含有的元素
console.log($("td:has(span)"));
// parent 匹配父标签的元素
$(".p1:parent").html("haha");
})
</script>
</body>
</html>
③可见性过滤器
:visible 匹配可见元素
:hidden 匹配不可见元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jQuery可见性过滤选择器</title>
<script type="text/javascript" src="js/jQuery3.6.0.js"></script>
</head>
<body>
<input type="text" value="aaa"/>
<input type="hidden" value="bbb"/>
<input type="text" style="display: none" />
<script>
$(function(){
// :visible 匹配可见元素
console.log($("input:visible").val());
// :hidden 匹配不可见元素
console.log($("input:hidden").val());
// 匹配最后一个不可见元素
console.log($("input:hidden:last").val());
})
</script>
</body>
</html>
④表单过滤器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jQuery表单过滤选择器</title>
<script type="text/javascript" src="js/jQuery3.6.0.js"></script>
</head>
<body>
<form>
<input type="checkbox" checked="checked" value="复选框1"> 选框1
<input type="checkbox" checked="checked" value="复选框2"> 选框2
<input type="checkbox" value="复选框3"> 选框3
<input type="button" value="不可用按钮" disabled> 按钮
<select>
<option selected="selected"> aaa </option>
<option> bbb </option>
</select>
</form>
<script>
$(function(){
// :checked 匹配所有选中的标签
console.log($("input:checked:eq(0)").val());
// :disabled
console.log($("input:disabled").val());
})
$(function(){
console.log($("select option:selected").val());
})
</script>
</body>
</html>
⑤子元素过滤器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jQuery子元素过滤选择器</title>
<script type="text/javascript" src="js/jQuery3.6.0.js"></script>
</head>
<body>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<script>
$(function(){
// first-child
$("ul li:first-child").html("first-child");
// last-child
$("ul li:last-child").html("last-child");
// nth-child 从1开始
$("ul li:nth-child(2)").html("2th-child");
})
</script>
</body>
</html>
Ⅳ、属性选择器
[attr] 匹配指定属性的元素
[attr=val] 选择指定值的元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jQuery属性过滤选择器</title>
<script type="text/javascript" src="js/jQuery3.6.0.js"></script>
<style>
div{
width: 100px;
height: 50px;
margin: 10px;
}
</style>
</head>
<body>
<div name="div1"></div>
<div name="div2"></div>
<div name="div3"></div>
<div name="div4"></div>
<div name="div1"></div>
<div name="div1hello"></div>
<div name="div1world"></div>
<div ></div>
<script>
$(function(){
// [attr] 匹配指定属性的元素
$("div[name]").css("background-color", "blue");
// [attr=var] 选择指定值的元素
$("div[name='div2']").css("background-color", "red");
// $("div[name!='div1']").css("background-color", "green");
// 全部匹配
$("div[name*='div1']").css("background-color", "green");
// 匹配以div开头的
$("div[name^='div1']").css("background-color", "green");
// 完全匹配div1
$("div[name$='div1']").css("background-color", "green");
})
</script>
</body>
</html>
Ⅴ、表单选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jQuery表单过滤选择器</title>
<script type="text/javascript" src="js/jQuery3.6.0.js"></script>
</head>
<body>
<form>
<input type="checkbox" >
<input type="radio" >
<input type="file" >
<input type="image" >
<input type="password" >
<input type="text" >
<input type="reset" >
<input type="submit" >
<input type="button" >
</form>
<script>
$(function(){
var $jqObj1 = $(":checked")
var $jqObj1 = $(":password")
})
</script>
</body>
</html>