jQuery基础入门笔记(详细总结)

目录

1、什么是jquery?

2、jquery下载安装

2.1、方式一官网下载 

2.2、方式二引入谷歌和微软服务器的jQuery

3、jQuery语法

3.1、元素选择器

3.2、属性选择器 

3.3、CSS选择器

3.4、事件函数

3.5、hide()隐藏函数

4、jQuery效果

4.1、隐藏/显示

4.2、淡入/淡出

4.3、滑动

4.4、动画

4.5、stop函数停止动画

4.6、函数链接

5、jQuery之DOM操作

5.1、获取内容

5.2、获取属性

5.3、设置内容

5.4、设置属性attr()和删除属性removeAttr()

5.5、设置属性prop()和删除属性removeProp() 

5.6、添加内容 

5.7、删除元素

5.8、获取并设置CSS类 

6、jQuery选择器

6.1、基本选择器

6.2、层级选择器

6.3、基本过滤选择器

6.4、内容过滤选择器

6.5、可见性过滤选择器

6.6、属性过滤选择器

6.7、子元素过滤选择器

6.8、表单过滤选择器

6.9、表单对象属性过滤选择器

6.10、对象遍历


前言:学习jQuery之前,必须先学习HTML+CSS+JS,后学jQuery才会更加简单。

1、什么是jquery?

jQuery 是一个 JavaScript 库。

jQuery 极大地简化了 JavaScript 编程。

jQuery 学习很容易。

2、jquery下载安装

jQuery的安装有二种方式,一种就是从官方网站进行下载,这里我提供一个1.8.3版本的jQuery文件,请自行提取。

有两个版本的 jQuery 可供下载:

Production version - 用于实际的网站中,已被精简和压缩,以后部署服务器用的都是精简版本。

Development version - 用于测试和开发(未压缩,是可读的代码),开发练习使用这个就可以了。

2.1、方式一官网下载 

链接:https://pan.baidu.com/s/1p_-XkROq65rSKpPS745HRg 
提取码:bs8c

如果不想用这个版本,也可自习到官网下载,这里提供官网地址:Download jQuery | jQuery

下载完之后,把jQuery文件放到项目的js包下

在html中引入jQuery文件,这里使用script标签,src属性填写jQuery文件存放路径。 (注意:我这里是js包与html文件是同级关系,所以js前面不用写/)。

<head>
	<meta charset="utf-8">
	<title></title>
	<script src="js/jquery-1.8.3.js"></script>
</head>
	

2.2、方式二引入谷歌和微软服务器的jQuery

如果您不希望下载并存放 jQuery,那么也可以通过 CDN(内容分发网络) 引用它,这里是谷歌服务器里面的jQuery,可以直接引入,不用再下载jQuery文件。

谷歌:

<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js">
</script>
</head>

微软:

<head>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.js">
</script>
</head>

3、jQuery语法

3.1、元素选择器

$(this).hide()

演示 jQuery hide() 函数,隐藏当前的 HTML 元素。

$("#test").hide()

演示 jQuery hide() 函数,隐藏 id="test" 的元素。

$("p").hide()

演示 jQuery hide() 函数,隐藏所有 <p> 元素。

$(".test").hide()

演示 jQuery hide() 函数,隐藏所有 class="test" 的元素。

3.2、属性选择器 

jQuery 使用 XPath 表达式来选择带有给定属性的元素。

$("[href]") 选取所有带有 href 属性的元素。

$("[href='#']") 选取所有带有 href 值等于 "#" 的元素。

$("[href!='#']") 选取所有带有 href 值不等于 "#" 的元素。

$("[href$='.txt']") 选取所有 href 值以 ".txt" 结尾的元素。

3.3、CSS选择器

jQuery CSS 选择器可用于改变 HTML 元素的 CSS 属性。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<script src="js/jquery-1.8.3.js"></script>
	<body>
		<p id="one">我要变绿</p>
		<p id="two">我要变蓝</p>
		<p id="three">我要变黄</p>
		<button id="green">点我变绿</button>
		<button id="blue">点我变蓝</button>
		<button id="yellow">点我变黄</button>
	</body>
	<script>
		$(document).ready(function(){
			$("#green").click(function(){
				$("#one").css("background-color","green");
			});
			$("#blue").click(function(){
				$("#two").css("background-color","blue");
			});
			$("#yellow").click(function(){
				$("#three").css("background-color","yellow");
			});
		});
	</script>
</html>

3.4、事件函数

事件函数指的是:当按钮的点击事件被触发时会调用一个函数。事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。术语由事件“触发”(或“激发”)经常会被使用。

事件函数说明
$(document).ready(function)将函数绑定到文档的就绪事件(当文档完成加载时)
$(selector).click(function)触发或将函数绑定到被选元素的点击事件
$(selector).dblclick(function)触发或将函数绑定到被选元素的双击事件
$(selector).focus(function)触发或将函数绑定到被选元素的获得焦点事件
$(selector).mouseover(function)触发或将函数绑定到被选元素的鼠标悬停事件

3.5、hide()隐藏函数

hide()隐藏函数相当于js中的display:none,指的是让元素隐藏功能。

文档就绪函数

$(document).ready(function(){

  // jQuery functions go here

});
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
        <script src="js/jquery-1.8.3.js"></script>
	</head>
	<script>
		$(document).ready(function(){
			//p标签点击事件函数
			$("p").click(function(){
				//隐藏当前元素
				$(this).hide();
			});
		});
	</script>
	<body>
		<p>点我消失</p>
		<p>点我消失</p>
		<p>点我消失</p>
	</body>
</html>

4、jQuery效果

4.1、隐藏/显示

函数说明
JQuery hide()隐藏
JQuery show()显示

jQuery toggle()

切换 hide() 和 show() 方法

hide()和show()以及toggle()是可以进行填写毫秒值来延迟隐藏/显示效果的。 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<script src="js/jquery-1.8.3.js"></script>
	<body>
		<p id="p1">如果点击“隐藏”按钮,我就会消失。</p>
		<button id="hide" type="button">隐藏</button>
		<button id="show" type="button">显示</button>
		<button type="button" id="button">切换</button>
		<p>这是一个段落。</p>
		<p>这是另一个段落。</p>
	</body>
	<script>
		// 可选的 speed 参数规定隐藏/显示的速度,可以取以下值:"slow"、"fast" 或毫秒。
		
		// 可选的 callback 参数是隐藏或显示完成后所执行的函数名称。
		$(document).ready(function(){
			$("#hide").click(function(){
				$("p").hide(1000);//hide和show里可以添加毫秒值  会有延迟显现/消失效果
			});
			$("#show").click(function(){
				$("p").show(1000);//hide和show里可以添加毫秒值  会有延迟显现/消失效果
			});
			$("#button").click(function(){
				$("p").toggle(1000);//toggle就是hide和show的整合,可以添加毫秒值 会有延迟显现/消失效果
			});
		});
		
	</script>
</html>

4.2、淡入/淡出

函数说明
fadeIn()淡入已隐藏的元素
fadeOut()用于淡出可见元素
fadeToggle可以在 fadeIn() 与 fadeOut() 方法之间进行切换
fadeTo()方法允许渐变为给定的不透明度(值介于 0 与 1 之间)
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<script src="js/jquery-1.8.3.js"></script>
	<body>
		<p>演示带有不同参数的 fadeIn() 方法。</p>
		<button id="fadeIn">点击这里,使三个矩形淡入</button>
		<button id="fadeOut">点击这里,使三个矩形淡出</button>
		<button id="fadeToggle">点击这里,使三个矩形淡入淡出</button>
		<button id="fadeTo">点击这里,使三个矩形淡出透明度</button>
		<br><br>
		<div id="div1" style="width:80px;height:80px;display:none;background-color:red;"></div>
		<br>
		<div id="div2" style="width:80px;height:80px;display:none;background-color:green;"></div>
		<br>
		<div id="div3" style="width:80px;height:80px;display:none;background-color:blue;"></div>
	</body>
	<script>
		// 	可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
		// 	可选的 callback 参数是 fading 完成后所执行的函数名称。

		     //fadeIn  淡入
		$(document).ready(function() {
			$("#fadeIn").click(function() {
				$("#div1").fadeIn();
				$("#div2").fadeIn("slow");
				$("#div3").fadeIn(2000);
			});
			 //fadeOut 淡出
			$("#fadeOut").click(function(){
				$("#div1").fadeOut();
				$("#div2").fadeOut("slow");
				$("#div3").fadeOut(2000);
			});
			  //fadeToggle()淡入淡出
			$("#fadeToggle").click(function(){
				$("#div1").fadeToggle();
				$("#div2").fadeToggle("slow");
				$("#div3").fadeToggle(2000);
			});
			//fadeTo()函数 后面可以填写透明度
			$("#fadeTo").click(function(){
				$("#div1").fadeTo("slow",0.2);
				$("#div2").fadeTo("slow",0.4);
				$("#div3").fadeTo(2000,0.7);
			});
		});
	</script>
</html>

4.3、滑动

函数说明
slideDown()用于向下滑动元素
slideUp()用于向上滑动元素
slideToggle()可以在 slideDown() 与 slideUp() 方法之间进行切换
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			.panel,
			.flip {
				width: 500px;
				margin: 0 auto;
				padding: 5px;
				text-align: center;
				background: #e5eecc;
				border: solid 1px #c3c3c3;
			}

			.panel {
				height: 120px;
				display: none;
			}
		</style>
	</head>
	<script src="js/jquery-1.8.3.js"></script>
	<script>
		
         $(document).ready(function(){
		    // jQuery slideDown() 方法用于向下滑动元素。
			// $(".flip").click(function(){
            //   $(".panel").slideDown("slow");
			// });
			// jQuery slideUp() 方法用于向上滑动元素。
			// $(".flip").click(function(){
			// 	$(".panel").slideUp("slow");
			// });
			// jQuery slideToggle() 方法可以在 slideDown() 与 slideUp() 方法之间进行切换。
			$(".flip").click(function(){
				$(".panel").slideToggle("slow");
			});
		 });
	</script>
	<body>
		<div class="panel">
			<p>欢迎光临本网站</p>
	        <p>请您先进行注册</p>
		</div>
		<p class="flip">展开/收起</p>
	</body>
</html>

4.4、动画

animate函数

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<script src="js/jquery-1.8.3.js"></script>
	<script>
		$(document).ready(function(){
			// 也可以定义相对值(该值相对于元素的当前值)。需要在值的前面加上 += 或 -=:
			$("button").click(function(){
				$("div").animate(
				{left:'400px',
				 opacity:'0.5',
				 // 您可以把属性的动画值设置为 "show"、"hide" 或 "toggle":
				 height:'toggle',
				 width:'+=150px'
				},1000);
			});
		});
	</script>
	<body>
		<button>开始动画</button>
		<p>默认情况下,所有 HTML 元素的位置都是静态的,并且无法移动。如需对位置进行操作,记得首先把元素的 CSS position 属性设置为 relative、fixed 或 absolute。</p>
		<div style="background:#98bf21;height:100px;width:100px;position:absolute;">
		</div>
	</body>
</html>

动画的排队执行

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<script src="js/jquery-1.8.3.js"></script>
	<script> 
	$(document).ready(function(){
	  $("button").click(function(){
	    //把元素div赋值到一个变量
	    var div=$("div");
	    div.animate({height:'300px',opacity:'0.4'},"slow");
	    div.animate({width:'300px',opacity:'0.8'},"slow");
	    div.animate({height:'100px',opacity:'0.4'},"slow");
	    div.animate({width:'100px',opacity:'0.8'},"slow");
	  });
	});
	</script> 
	<body>
		<button>开始动画</button>
		<p>默认情况下,所有 HTML 元素的位置都是静态的,并且无法移动。如需对位置进行操作,记得首先把元素的 CSS position 属性设置为 relative、fixed 或 absolute。</p>
		<div style="background:#98bf21;height:100px;width:100px;position:absolute;">
		</div>
	</body>
</html>

动画右移字体变大

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<script src="js/jquery-1.8.3.js"></script>
	<script> 
	$(document).ready(function(){
	  $("button").click(function(){
	    var div=$("div");  
	    div.animate({left:'100px'},"slow");
	    div.animate({fontSize:'3em'},"slow");
	  });
	});
	</script> 
	<body>
		<button>开始动画</button>
		<p>默认情况下,所有 HTML 元素的位置都是静态的,并且无法移动。如需对位置进行操作,记得首先把元素的 CSS position 属性设置为 relative、fixed 或 absolute。</p>
		<div style="background:#98bf21;height:100px;width:200px;position:absolute;">HELLO</div>
	</body>
</html>

4.5、stop函数停止动画

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css"> 
		#panel,#flip
		{
		padding:5px;
		text-align:center;
		background-color:#e5eecc;
		border:solid 1px #c3c3c3;
		}
		#panel
		{
		padding:50px;
		display:none;
		}
		</style>
	</head>
	<script src="js/jquery-1.8.3.js"></script>
	<script>
		// stop() 方法适用于所有 jQuery 效果函数,包括滑动、淡入淡出和自定义动画。
		$(document).ready(function(){
			$("#flip").click(function(){
				$("#panel").slideDown(5000);
			});
			//停止滑动
			$("#stop").click(function(){
				$("#panel").stop();
			});
		});
		
	</script>
	<body>
		<button id="stop">停止滑动</button>
		<div id="flip">点击这里,向下滑动面板</div>
		<div id="panel">Hello world!</div>
	</body>
</html>

4.6、函数链接

一次写一条 jQuery 语句(一条接着另一条)很麻烦,不过,有一种名为链接(chaining)的技术,允许我们在相同的元素上运行多条 jQuery 命令,一条接着另一条。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-1.8.3.js"></script>
	</head>
	
	<script>
		$(document).ready(function(){
			$("button").click(function(){
				$("#p1").css("color","red").slideDown(1000).slideUp(1000);
			});
		});
	</script>
	<body>
		<p id="p1">jQuery 乐趣十足!</p>
		<button>点击这里</button>
	</body>
</html>

5、jQuery之DOM操作

5.1、获取内容

方法名说明
text()设置或返回所选元素的文本内容
html()设置或返回所选元素的内容(包括 HTML 标记)
val()设置或返回表单字段的值
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-3.4.1.js"></script>
	</head>
	<body>
		<p id="test">这是段落中的<b>粗体</b>文本。</p>
		<button id="btn1">显示文本</button>
		<button id="btn2">显示 HTML</button>
		
		<p>姓名:<input type="text" id="test2" value="米老鼠"></p>
		<button id="show">显示值</button>
	</body>
	<script>
		// text() - 设置或返回所选元素的文本内容
		// html() - 设置或返回所选元素的内容(包括 HTML 标记)
		// val() - 设置或返回表单字段的值
		 $(function(){
			 $("#btn1").click(function(){
				alert($("#test").text());
			 });
			 $("#btn2").click(function(){
				alert($("#test").html());
			 });	
			 $("#show").click(function(){
				alert($("#test2").val()); 
			 });
		 });
	</script>
	
</html>

5.2、获取属性

方法名说明
attr()用于获取属性值。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-3.4.1.js"></script>
	</head>
	<body>
		<p><a href="http://www.w3school.com.cn" id="w3s">W3School.com.cn</a></p>
		<button id="show_hf">显示 href 值</button>
	</body>	
    <script>
		 $(function(){
			 // 获得链接中 href 属性的值:
			 $("#show_hf").click(function(){
				alert($("#w3s").attr("href")); 
			 });
		 });
	</script>
	
</html>

5.3、设置内容

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-3.4.1.js"></script>
	</head>
	<body>
		<p id="test1">这是段落。</p>
		<p id="test2">这是另一个段落。</p>
		<p>Input field: <input type="text" id="test3" value="Mickey Mouse"></p>
		<button id="btn1">设置文本</button>
		<button id="btn2">设置 HTML</button>
		<button id="btn3">设置值</button>
	</body>
	<script>
		$(function(){
		   $("#btn1").click(function(){
			  $("#test1").text("Hello World!"); 
		   });
		   $("#btn2").click(function(){
		   	  $("#test2").html("<h1>Hello World!</h1>"); 
		   });
		   $("#btn3").click(function(){
			  $("#test3").val("Dolly Duck");
		   });
		});
	</script>
</html>

text()和html()的区别

text()和html()和js中的innerHtml和innerText是一样的,text()是获取或设置文本内容,而html()不仅可以获取或设置文本,也可以获取文本或设置样式,也就是说html()可以识别样式标签。

5.4、设置属性attr()和删除属性removeAttr()

方法说明
attr()获取/设置元素的属性
removeAttr()删除属性
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<script src="../js/jquery-3.4.1.js"></script>
	<body>
		<p><a href="http://www.w3school.com.cn" id="w3s">W3School.com.cn</a></p>
		<button id="bt1">改变 href 值</button>
		<button id="bt2">改变href和title值</button>
		<button id="bt3">删除href属性</button>
		<p>请把鼠标指针移动到链接上,或者点击该链接,来查看已经改变的 href 值。</p>
	</body>
	<script>
		$(function(){
			$("#bt1").click(function(){
				$("#w3s").attr("href","http://www.w3school.com.cn/jquery");
			});
			
			$("#bt2").click(function(){
				$("#w3s").attr({
					"href":"http://www.w3school.com.cn/jquery",
					"title":"W3School jQuery 教程"
				});
			});
			$("#bt3").click(function(){
				$("#w3s").removeAttr("href");
			});
		});
		
	</script>
</html>

5.5、设置属性prop()和删除属性removeProp() 

方法名说明
prop()获取/设置元素的属性
removeProp()删除属性

 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<script src="../js/jquery-3.4.1.js"></script>
	<body>
		<form action="#" method="get">
			姓名 <input type="text" name="username" id="username" value="德玛西亚" /> <br />

			爱好
			<input id="hobby" type="checkbox" name="hobby" value="perm" checked="checked">烫头<br />

			<input type="reset" value="清空按钮" />
			<input type="submit" value="提交按钮" /><br />
		</form>
	</body>
	<script>
		 // 方式一: attr
		 // 选中返回: checked
		 // 末选中返回: undefined
		console.log($("#hobby").attr('checked'));
		 // jq在1.6版本之后,弥补这个设计缺陷,如果该属性被选中返回true 末被选中返回false
	    console.info($("#hobby").prop("checked"));//返回属性的值的状态
		
		$("#hobby").prop('checked',false);//设置属性
		$("#username").prop("id","user_name");//也可以设置属性,注意不能自定义属性
	</script>
</html>

prop()和attr()的区别

attr: 主要用于设置属性的值这一类的操作
prop: 主要用于判断属性是否存在或者操作布尔类型的操作
例如: checked selected

5.6、添加内容 

方法名说明
append()被选元素的结尾插入内容
prepend()被选元素的开头插入内容
after()能够通过参数接收无限数量的新元素添加至元素之前
before()能够通过参数接收无限数量的新元素添加至元素之后
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<script src="js/jquery-3.4.1.js"></script>
	<body>
		<p>This is a paragraph.</p>
		<p>This is another paragraph.</p>
		<ol>
			<li>List item 1</li>
			<li>List item 2</li>
			<li>List item 3</li>
		</ol>
		<button id="btn1">追加尾部文本</button>
		<button id="btn2">追加尾部列表项</button>
		<button id="btn3">追加头部文本</button>
		<button id="btn4">追加头部列表项</button>
	</body>
	<script>
		$(function() {
			$("#btn1").click(function() {
				$("p").append("<b>Appended text</b>.");
			});
			$("#btn2").click(function() {
				$("ol").append("<li>Appended item</li>");
			});
			$("#btn3").click(function() {
				$("p").prepend("<b>Appended text</b>.");
			});
			$("#btn4").click(function() {
				$("ol").prepend("<li>Appended item</li>");
			});
		});
	</script>
</html>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<script src="js/jquery-3.4.1.js"></script>
	<body>
		<img src="/i/eg_w3school.gif" alt="W3School Logo" />
		<br><br>
		<button id="btn1">在图片前面添加文本</button>
		<button id="btn2">在图片后面添加文本</button>
		<button id="btn3">在图片前面添加若干文本</button>
		<button id="btn4">在图片后面添加若干文本</button>
	</body>
	<script>
		$(function(){
			var txt1="<b>I </b>";                    // 以 HTML 创建元素
			var txt2=$("<i></i>").text("love ");     // 通过 jQuery 创建元素
			var txt3=document.createElement("big");  // 通过 DOM 创建元素
			txt3.innerHTML="jQuery!";
			$("#btn1").click(function(){
				$("img").before("<b>Before</b>");
			});
			$("#btn2").click(function(){
				$("img").after("<i>After</i>");
			});
			$("#btn3").click(function(){
				$("img").before(txt1,txt2,txt3);
			});
			$("#btn4").click(function(){
				$("img").after(txt1,txt2,txt3);
			});
		});
	</script>
</html>

5.7、删除元素

方法名说明
remove()删除被选元素(及其子元素)
empty() 从被选元素中删除子元素
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<script src="js/jquery-3.4.1.js"></script>
	<body>
		<div id="div1" style="height:100px;width:300px;border:1px solid black;background-color:yellow;">
		This is some text in the div.
		<p>This is a paragraph in the div.</p>
		<p>This is another paragraph in the div.</p>
		</div>
		
		<br>
		<button>删除 div 元素</button>
	</body>
	<script>
		$(function(){
			$("button").click(function(){
				$("#div1").remove();
			});
		});
	</script>
</html>

删除指定元素remove(指定元素)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<script src="js/jquery-3.4.1.js"></script>
	<body>
		<p>This is a paragraph in the div.</p>
		<p class="italic"><i>This is another paragraph in the div.</i></p>
		<p class="italic"><i>This is another paragraph in the div.</i></p>
		<button>删除 class="italic" 的所有 p 元素</button>
	</body>
	<script>
		$(function(){
			$("button").click(function(){
				$("p").remove(".italic");
			});
		});
	</script>
</html>

删除子元素empty() 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<script src="js/jquery-3.4.1.js"></script>
	<body>
		<div id="div1" style="height:100px;width:300px;border:1px solid black;background-color:yellow;">
		This is some text in the div.
		<p>This is a paragraph in the div.</p>
		<p>This is another paragraph in the div.</p>
		</div>
		
		<br>
		<button>清空 div 元素</button>
	</body>
	<script>
		$(function(){
			$("button").click(function(){
				$("#div1").empty();
			});
		});
	</script>
</html>

5.8、获取并设置CSS类 

方法名说明
addClass() 向被选元素添加一个或多个类
removeClass()从被选元素删除一个或多个类
toggleClass()对被选元素进行添加/删除类的切换操作
css() 设置或返回样式属性
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			.important {
				font-weight: bold;
				font-size: xx-large;
			}

			.blue {
				color: blue;
			}
		</style>
	</head>
	<script src="../js/jquery-3.4.1.js"></script>
	<body>

		<h1>标题 1</h1>
		<h2>标题 2</h2>
		<p>这是一个段落。</p>
		<p>这是另一个段落。</p>
		<div>这是非常重要的文本!</div>
		<br>
		<button id="bt1">向元素添加类</button>
		<button id="bt2">删除元素上的类</button>
		<button id="bt3">切换类</button>

	</body>
	<script>
		$(function() {
			$("#bt1").click(function() {
				$("h1,h2").addClass("blue");
				$("p").addClass("blue");
				$("div").addClass("important blue");
			});
			$("#bt2").click(function(){
				$("h1,h2").removeClass("blue");
				$("p").removeClass("blue");
				$("div").removeClass("important blue");
			});
			$("#bt3").click(function(){
				$("h1,h2").toggleClass("blue");
				$("p").toggleClass("blue");
				$("div").toggleClass("important blue");
			});
		});
	</script>
</html>

6、jQuery选择器

6.1、基本选择器

选择器名称语法
标签选择器语法: $("html标签名") 获得所有匹配标签名称的元素
id选择器语法: $("#id的属性值") 获得与指定id属性值匹配的元素
类选择器语法: $(".class的属性值") 获得与指定的class属性值匹配的元素
并集选择器语法: $("选择器1,选择器2....") 获取多个选择器选中的所有元素
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<script src="../js/jquery-3.4.1.js"></script>
	<body>
		<span class="female">古力娜扎</span>
		<span class="female" id="dlrb">迪丽热巴</span>
		<span class="female hero">黑人</span>

		<span class="male hero">钢铁侠</span>
		<span class="male hero">超人</span>
	</body>
	<script>
		//标签名选择器
		$("span").each(function(){
			console.log(this);
		});
		console.info("===============")
		//类选择器
		$(".female").each(function(){
			console.log(this);
		});
		
		console.info("===============")
		//id选择器
        $("#dlrb").each(function(){
			console.info(this);
		});
		console.info("===============")
		//组合选择器
		$(".female,.hero").each(function(){
			console.info(this);
		});
	</script>
</html>

6.2、层级选择器

选择器语法
后代选择器语法: $("A B ") 选择A元素内部的所有B元素
子选择器语法: $("A > B") 选择A元素内部的所有B子元素
兄弟选择器语法: $("A ~ B") 选择A元素同级的所有B兄弟元素
跟班选择器语法: $("A + B") 选择A元素旁边的B元素
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<script src="../js/jquery-3.4.1.js"></script>
	<body>
		<div id="kangxi">
			<span>儿子:雍正</span>
			<p>
				<span>孙子:乾隆</span>
			</p>
		</div>
		<div>牛顿</div>
	</body>
	<script>
		
		$(function(){
			//父子
			console.log($("#kangxi>span").text());
			//祖宗 后代
			console.log($("div span").text());
			//兄弟
			console.log($("span ~ p").text());
			//跟班
			console.log($("span+p").text());
			
		});
	</script>
</html>

6.3、基本过滤选择器

选择器语法
首元素选择器语法: :first 获得选择的元素中的第一个元素
尾元素选择器语法: :last 获得选择的元素中的最后一个元素
偶数选择器语法: :even 索引偶数,从 0 开始计数
奇数选择器语法: :odd 索引奇数,从 0 开始计数
等于索引选择器语法: :eq(index) 指定索引元素
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="../js/jquery-3.4.1.js"></script>
	</head>
	<body>
		<h1>表格信息</h1>
		<h2>这是一张商品表</h2>
		<table border="1" width="600">
			<tr>
				<th>商品编号</th>
				<th>商品名称</th>
				<th>售价</th>
				<th>数量</th>
			</tr>
			<tr>
				<td>001</td>
				<td>冰箱</td>
				<td>3000</td>
				<td>100</td>
			</tr>
			<tr>
				<td>002</td>
				<td>洗衣机</td>
				<td>2000</td>
				<td>50</td>
			</tr>
			<tr>
				<td>003</td>
				<td>热水器</td>
				<td>1500</td>
				<td>20</td>
			</tr>
			<tr>
				<td>004</td>
				<td>手机</td>
				<td>2188</td>
				<td>200</td>
			</tr>
		</table>

		<div>slideDown(speed, [callback]) 概述
			通过高度变化(向下增大)来动态地显示所有匹配的元素,在显示完成后可选地触发一个回调函数。
			这个动画效果只调整元素的高度,可以使匹配的元素以“滑动”的方式显示出来。在jQuery
			1.3中,上下的padding和margin也会有动画,效果更流畅。 参数
			speedString,Number三种预定速度之一的字符串("slow", "normal", or
			"fast")或表示动画时长的毫秒数值(如:1000) callback (可选)FunctionFunction在动画完成时执行的函数</div>
		<div>fadeOut(speed, [callback]) 概述
			通过不透明度的变化来实现所有匹配元素的淡出效果,并在动画完成后可选地触发一个回调函数。
			这个动画只调整元素的不透明度,也就是说所有匹配的元素的高度和宽度不会发生变化。 参数
			speedString,Number三种预定速度之一的字符串("slow", "normal", or
			"fast")或表示动画时长的毫秒数值(如:1000) callback (可选)Function在动画完成时执行的函数</div>
		<button>切换内容</button>
	</body>
	<script>
		$(function(){
			//设置表格第一行,显示为红色
			$("tr:first").css("background","red");
			// 2.设置表格除第一行以外 显示为蓝色
			$("tr:gt(0)").css("background","blue");
			// 3.设置表格偶数行背景色 金色  odd索引为奇数
			$("tr:odd").css("background","yellow");
			// 4.设置表格奇数行背景色 绿色
			$("tr:even").css("background","green");
			// 5.设置页面中所有标题 显示为灰色
			$(":header").css("background","grey");
			// 6.设置页面中正在执行动画效果div背景黄色
			$("button").click(function(){
				$("div").slideToggle("slow");
				$("div:animated").css("background","orange");
			});
			// 7. 设置<html>背景颜色为金色
			$(":root").css("background","pink");
		});
	</script>
</html>

6.4、内容过滤选择器

方法名说明
:contains()包含文本内容
:empty选取没有子元素的
:has()包含某个元素
:parent选取所有子元素
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="../js/jquery-3.4.1.js"></script>
	</head>
	<body>
		<div>今天是个晴天</div>
		<div>明天要去人民公园a</div>
		<div>
			<span>JavaScript</span> 是网页开发中脚本技术
		</div>
		<div>Ajax 是异步的 JavaScript和 XML</div>
		<div>
			<p>jQuery</p>
			是 JavaScript一个 轻量级框架
		</div>
		<div></div>
	</body>
	<script>
		$(function(){
			 // 1.设置含有文本内容 ”公园” 的 div 的字体颜色为红色
			$("div:contains('公园')").css("color","red");
			 // 2.设置没有子元素的div元素 文本内容 ”这是一个空DIV
			$("div:empty").text("这是一个空div");
			 // 3.设置包含p元素 的 div 背景色为黄色
			 $("div:has(p)").css("background","yellow");
			 // 4.设置所有含有子元素的span字体为蓝色
			 $("span:parent").css("color","blue");
		});
	</script>
</html>

6.5、可见性过滤选择器

方法名说明
:hidden选取隐藏元素
:visible选取可见元素
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<script src="../js/jquery-3.4.1.js"></script>
	<body>
		<form>
			<input type="hidden" />
			<input type="text" name="xxx" style="display: none;" />
		</form>

		<table>
			<tr>
				<td>洗衣机</td>
			</tr>
			<tr>
				<td>热水器</td>
			</tr>
			<tr style="display: none">
				<td>电冰箱</td>
			</tr>
		</table>
	</body>
	<script>
		//1、选中from中不可见元素,添加class属性
		//匹配所有display:none 或者 input中的 type:hidden 元素
		//attr()相当于js中的setAttribute()
		$("from:hidden").attr("class", "hd_from");
		$("tr:hidden").attr("class", "hd_tr");
		$("input:hidden").addClass("hd_input"); //只能添加class属性
		//2.设置table所有 可见 tr 背景色 金色
		$("tr:visible").css("background", "yellow");
		//3.设置table所有 隐藏tr 字体颜色为红色,显示出来 
		$("tr:hidden").css("color","red").show();
	</script>
</html>

6.6、属性过滤选择器

选择器语法
属性名称选择器语法: $("A[属性名]") 包含指定属性的选择器
属性选择器语法: $("A[属性名='值']") 包含指定属性等于指定值的选择器
复合属性选择器语法: $("A[属性名='值'] []...") 包含多个属性条件的选择器
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<script src="../js/jquery-3.4.1.js"></script>
	<body>
		<input type="text" name="username" value="用户名" /><br />

		<input type="text" name="nickname" value="昵称" /><br />

		<input type="password" name="password" value="密码" /><br />

		<p class="p-yanqi">我是class="p-yanqi"</p>
	</body>
	<script>
		$(function(){
			// 1.获取type 的input标签
			$("input[type]").each(function(){
				console.info(this);
			});
			console.info("-----------------");
			// 2.获取type=“password”的input标签
			$("input[type='password']").each(function(){
				console.info(this);
			});
			console.info("-----------------");
			// 3.获取属性名以xx开始
			$("p[class^=p]").each(function(){
				console.info(this);
			});
			console.info("-----------------");
			// 4.获取属性名以xx结尾
			$("input[type$='rd']").each(function(){
				console.info(this);
			})
			console.info("-----------------");
			// 5.属性值中包含的属性
			$("input[type*='t']").each(function(){
				console.info(this);
			});
			console.info("-----------------");
			// 6.获取 type ='text' 并且 name='nickname' 的标签
			$("input[type='text'][name='nickname']").each(function(){
				console.info(this);
			});
		});
	</script>
</html>

6.7、子元素过滤选择器

方法名说明
:nth-child(3n)选取以3为倍数的元素
:nth-child(even)选取偶数行元素
:nth-child(odd)选取奇数行元素
:only-child选取只有一个子元素的元素
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<script src="../js/jquery-3.4.1.js"></script>
	<body>
		<table border="1" width="400" id="mytable">
			<tr>
				<td>1</td>
				<td>冰箱</td>
			</tr>
			<tr>
				<td>2</td>
				<td>洗衣机</td>
			</tr>
			<tr>
				<td>3</td>
				<td>热水器</td>
			</tr>
			<tr>
				<td>4</td>
				<td>电饭锅</td>
			</tr>
			<tr>
				<td>5</td>
				<td>电磁炉</td>
			</tr>
			<tr>
				<td>6</td>
				<td>豆浆机</td>
			</tr>
			<tr>
				<td>7</td>
				<td>微波炉</td>
			</tr>
			<tr>
				<td>8</td>
				<td>电视</td>
			</tr>
			<tr>
				<td>9</td>
				<td>空调</td>
			</tr>
			<tr>
				<td>10</td>
				<td>收音机</td>
			</tr>
			<tr>
				<td>11</td>
				<td>排油烟机</td>
			</tr>
			<tr>
				<td>12</td>
				<td>加湿器</td>
			</tr>
			<tr>
				<td>13 电暖气</td>
			</tr>
		</table>
	</body>
	<script>
		$(function(){
			 // 1.在每个表格 下3的倍数行,字体颜色为红色 3 6 9 12
			 $("tr:nth-child(3n)").css("color","red");
			 // 2.每个表格 奇数行 背景色 黄色
			 $("tr:nth-child(odd)").css("background","yellow");
			 // 3.每个表格 偶数行 背景色 灰色
			 $("tr:nth-child(even)").css("background","grey");
			 // 4.每个tr 只有一个td的  字体为 蓝色
			 $("td:only-child").css("color","blue");
		});
		
	</script>
</html>

6.8、表单过滤选择器

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<script src="../js/jquery-3.4.1.js"></script>
	<body>
		<form action="#" method="POST">
			用户名 <input type="text" name="username" /><span id="span"></span> <br />
			密 码 <input type="password" name="password" /> <br />
			<input type="button" value="提交" />
		</form>
	</body>
	<script>
		$(function(){
			// 1.对所有text框和password框,添加离焦事件,校验输入内容不能为空
			$(":text,:password").blur(function(){
				if($(this).val()==""){
					$("#span").html("用户名或密码不能为空").css("color","red");
				}
				else{
					$("#span").html("");
				}
			});
			$("input[type='button']").click(function(){
				if($(":text").val()==""||$(":password").val()==""){
					$("#span").html("用户名或密码不能为空").css("color","red");
				}else{
					$("form").submit();
				}
			});
		});
	</script>
</html>

6.9、表单对象属性过滤选择器

选择器语法
可用元素选择器语法: :enabled 获得可用元素
不可用元素选择器语法: :disabled 获得不可用元素
单选/复选框选中选择器语法: :checked 获得单选/复选框选中的元素
下拉框选中选择器语法: :selected 获得下拉框选中的元素
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<script src="../js/jquery-3.4.1.js"></script>
	<body>
		<form>
			<input type="text" value="不可用值1" disabled="disabled">
			<input type="text" value="可用值1">
			性别
			<input type="radio" value="男" name="gender" checked="checked" />男
			<input type="radio" value="女" name="gender" />女 <br />
			爱好
			<input type="checkbox" value="体育" name="hobby" /> 体育
			<input type="checkbox" value="读书" name="hobby" checked="checked" /> 读书
			<input type="checkbox" value="音乐" name="hobby" /> 音乐
			<input type="checkbox" value="绘画" name="hobby" /> 绘画 <br />
			城市
			<select name="city" id="edu">
				<option value="">请选择</option>
				<option value="北京">北京</option>
				<option value="上海" selected="selected">上海</option>
				<option value="天津">天津</option>
			</select> <br />
			<input type="button" value="打印" />
		</form>
	</body>
	<script>
		$(function() {
			// 1. 获取可用的输入框
			$("input:enabled").each(function() {
				console.log(this);
			});
			console.info("-----------------");
			// 2. 获取不可用的输入框
			$("input:disabled").each(function() {
				console.info(this);
			});
			console.info("-----------------");
			// 3. 获取选中的复选框
			$("input[type='checkbox']:checked").each(function(){
				console.info(this);
			});
			console.info("-----------------");
			// 4. 获取选中的下列选择框
			$("#edu option:selected").each(function(){
				console.info(this);
			});
			
			 // 点击button 打印radio checkbox select 中选中项的值
			 $("input[type='button']").click(function(){
				alert($("input[type='radio']:checked").val());
				$("input[type='checkbox']:checked").each(function(){
					alert($(this).val());
				});
				alert($("#edu option:selected").val());
			 });
		});
	</script>
</html>

6.10、对象遍历

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<script src="../js/jquery-3.4.1.js"></script>
	<body>
		<ul id="city">
			<li>北京</li>
			<li>上海</li>
			<li>天津</li>
		</ul>
	</body>
	<script>
		$(function() {
			$("li").each(function(index, element) {
				//遍历索引
				console.info(index);
				//遍历元素
				console.info(element);
				//遍历元素中的数据
				console.info($(element).html());
				console.info($(this).html());
			});
		});
	</script>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值