文章目录

  • 一、jQuery 介绍
  • 二、jQuery 核心函数
  • 三、jQuery 对象和 DOM 对象的区别
  • 3.1 什么是 jQuery 对象? 什么是DOM 对象
  • 3.2 jQuery 对象本质
  • 3.3 jQuery对象和DOM对象的使用区别
  • 3.4 DOM 对象 和 jQuery 对象互转
  • 四、jQuery 选择器
  • 4.1 基本选择器
  • 4.2 层级选择器
  • 4.3 过滤选择器
  • 4.3.1 基本过滤选择器
  • 4.3.2 内容过滤器
  • 4.3.3 属性过滤器
  • 4.3.4 表单过滤器
  • 4.3.5 jQuery 元素筛选
  • 五、jQuery的属性操作
  • 六、DOM的增删改
  • 七、css样式操作
  • 八、jQuery动画
  • 九、事件操作
  • 9.1 jQuery 和原生 js 页面加载完成区别
  • 9.2 其他事件处理方法
  • 9.3 事件冒泡
  • 9.4 事件对象


一、jQuery 介绍

  • jQuery 是 JavaScript 和查询(Query),它就是辅助 JavaScript 开发的 js 类库。
  • 使用 jQ使用jQuery 一定要引入 jQuery 库

为按钮添加点击响应函数步骤:

  1. 使用 jQuery 查询到标签对象
  2. 使用标签对象.click( function(){ } );

jQuery 和原生 js 对比

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="script/jquery-1.7.2.js"></script><!--引入 jQuery 库-->
    <script type="text/javascript">
        //alert($) //验证 jQuery 库 是否引入成功

        /*
        window.onload = function () {
            var btn = document.getElementById("btn");
            btn.onclick = function () {
                alert("原生 js 绑定单击事件 代码");
            }
        }
        */

        $(function () {
            var btn = $("#btn");
            btn.click(
                function () {
                alert("jQuery 绑定单击事件");
            });
        });
    </script>
</head>
<body>
    <button id="btn">按钮</button>
</body>
</html>

二、jQuery 核心函数

$ 是 jQuery 的核心函数,能完成 jQuery 的很多功能。$()就是调用 $ 这个函数

传入的参数

  • 函数 表示页面加载完成之后 ,相当于 wondow.onload = function(){}
  • html 字符串 创建该标签
  • 选择器字符串
  • $("#id001"); 根据 id 查询
  • $(“标签名”); 根据标签名查询
  • $(".class"); 根据class属性查询
  • DOM 对象 把DOM对象转化为jQuery对象

三、jQuery 对象和 DOM 对象的区别

3.1 什么是 jQuery 对象? 什么是DOM 对象

jQuery 以开头 jquery()_选择器

3.2 jQuery 对象本质

jQuery 对象是 dom 对象的数组 + jQuery 提供的一系列功能函数。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="script/jquery-1.7.2.js"></script><!--引入 jQuery 库-->
    <script type="text/javascript">
    $(function(){
        var obj = $("#btn");
        alert(obj[0] );//[object HTMLButtonElement] 可使用jQuery中的函数
        alert(obj);//[object Object]
    });
    </script>
</head>
<body>
    <button id="btn">按钮</button>
</body>
</html>

3.3 jQuery对象和DOM对象的使用区别

  • jQuery 对象不能使用 DOM 对象的属性和方法
  • DOM 对象也不能使用 jQuery 对象的属性和方法

3.4 DOM 对象 和 jQuery 对象互转

  1. DOM 转 jQuery
    $(DOM对象); 得到jQuery对象
  2. jQuery 转 DOM
    jQuery对象[下标];得到DOM对象

四、jQuery 选择器

选择器 可以选择到需要的标签 更改其样式

4.1 基本选择器

jQuery 以开头 jquery()_css_02


使用选择器选择对应标签

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Untitled Document</title>
		<style type="text/css">
			div, span, p {
			    width: 140px;
			    height: 140px;
			    margin: 5px;
			    background: #aaa;
			    border: #000 1px solid;
			    float: left;
			    font-size: 17px;
			    font-family: Verdana;
			}
			
			div.mini {
			    width: 55px;
			    height: 55px;
			    background-color: #aaa;
			    font-size: 12px;
			}
			
			div.hide {
			    display: none;
			}
		</style>
		<script type="text/javascript" src="script/jquery-1.7.2.js"></script>
		<script type="text/javascript">

                    $(function () {
                        //1.选择 id 为 one 的元素 "background-color","#bbffaa"
                        var btn1 = $("#btn1");
						btn1.click(function () {
                            $("#one").css("background-color","#bbffaa");
                        });

                        //2.选择 class 为 mini 的所有元素
                        var btn2 = $("#btn2");
                        btn2.click(function () {
                            $(".mini").css("background-color","#bbffaa");
                        });
                        //3.选择 元素名是 div 的所有元素
                        var btn3 = $("#btn3");
                        btn3.click(function () {
                            $("div").css("background-color","#bbffaa");
                        });

                        //4.选择所有的元素
                        var btn4 = $("#btn4");
                        btn4.click(function () {
                            $("*").css("background-color","#bbffaa");
                        });

                        //5.选择所有的 span 元素和id为two的元素
                        var btn5 = $("#btn5");
                        btn5.click(function () {
                            $("span,#two").css("background-color","#bbffaa");
                        });
                    });

		</script>
	</head>
	<body>
<!-- 	<div>
		<h1>基本选择器</h1>
	</div>	 -->	
		<input type="button" value="选择 id 为 one 的元素" id="btn1" />
		<input type="button" value="选择 class 为 mini 的所有元素" id="btn2" />
		<input type="button" value="选择 元素名是 div 的所有元素" id="btn3" />
		<input type="button" value="选择 所有的元素" id="btn4" />
		<input type="button" value="选择 所有的 span 元素和id为two的元素" id="btn5" />
		
		<br>
		<div class="one" id="one">
			id 为 one,class 为 one 的div
			<div class="mini">class为mini</div>
		</div>
		<div class="one" id="two" title="test">
			id为two,class为one,title为test的div
			<div class="mini" title="other">class为mini,title为other</div>
			<div class="mini" title="test">class为mini,title为test</div>
		</div>
		<div class="one">
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini"></div>
		</div>
		<div class="one">
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini" title="tesst">class为mini,title为tesst</div>
		</div>
		<div style="display:none;" class="none">style的display为"none"的div</div>
		<div class="hide">class为"hide"的div</div>
		<div>
			包含input的type为"hidden"的div<input type="hidden" size="8">
		</div>
		<span class="one" id="span">^^span元素^^</span>
	</body>
</html>

4.2 层级选择器

jQuery 以开头 jquery()_css_03

<script type="text/javascript">
			$(document).ready(function(){
				//1.选择 body 内的所有 div 元素 
				$("#btn1").click(function(){
					$("body  div").css("background", "#bbffaa");
				});

				//2.在 body 内, 选择div子元素  
				$("#btn2").click(function(){
					$("body > div").css("background", "#bbffaa");
				});

				//3.选择 id 为 one 的下一个 div 元素 
				$("#btn3").click(function(){
					$("#one + div").css("background", "#bbffaa");
				});

				//4.选择 id 为 two 的元素后面的所有 div 兄弟元素
				$("#btn4").click(function(){
					$("#two ~ div").css("background", "#bbffaa");
				});
			});
		</script>

4.3 过滤选择器

4.3.1 基本过滤选择器

jQuery 以开头 jquery()_css_04

<script type="text/javascript" src="script/jquery-1.7.2.js"></script>
		<script type="text/javascript">
			$(document).ready(function(){
				function anmateIt(){
					$("#mover").slideToggle("slow", anmateIt);
				}
				anmateIt();
			});
			
			$(document).ready(function(){
				//1.选择第一个 div 元素  
				$("#btn1").click(function(){
					$("div:first").css("background", "#bbffaa");
				});

				//2.选择最后一个 div 元素
				$("#btn2").click(function(){
					$("div:last").css("background", "#bbffaa");
				});

				//3.选择class不为 one 的所有 div 元素
				$("#btn3").click(function(){
					$("div:not(.one)").css("background", "#bbffaa");
				});

				//4.选择索引值为偶数的 div 元素
				$("#btn4").click(function(){
					$("div:even").css("background", "#bbffaa");
				});

				//5.选择索引值为奇数的 div 元素
				$("#btn5").click(function(){
					$("div:odd").css("background", "#bbffaa");
				});

				//6.选择索引值为大于 3 的 div 元素
				$("#btn6").click(function(){
					$("div:gt(3)").css("background", "#bbffaa");
				});

				//7.选择索引值为等于 3 的 div 元素
				$("#btn7").click(function(){
					$("div:eq(3)").css("background", "#bbffaa");
				});

				//8.选择索引值为小于 3 的 div 元素
				$("#btn8").click(function(){
					$("div:lt(3)").css("background", "#bbffaa");
				});

				//9.选择所有的标题元素
				$("#btn9").click(function(){
					$(":header").css("background", "#bbffaa");
				});

				//10.选择当前正在执行动画的所有元素
				$("#btn10").click(function(){
					$(":animated").css("background", "#bbffaa");
				});
			});
		</script>

4.3.2 内容过滤器

jQuery 以开头 jquery()_jQuery 以开头_05

<script type="text/javascript" src="script/jquery-1.7.2.js"></script>
		<script type="text/javascript">
			$(document).ready(function(){
				function anmateIt(){
					$("#mover").slideToggle("slow", anmateIt);
				}
	
				anmateIt();				
			});

			$(document).ready(function(){
				//1.选择 含有文本 'di' 的 div 元素
				$("#btn1").click(function(){
					$("div:contains('di')").css("background", "#bbffaa");
				});

				//2.选择不包含子元素(或者文本元素) 的 div 空元素
				$("#btn2").click(function(){
					$("div:empty").css("background", "#bbffaa");
				});

				//3.选择含有 class 为 mini 元素的 div 元素
				$("#btn3").click(function(){
					$("div:has(.mini)").css("background", "#bbffaa");
				});

				//4.选择含有子元素(或者文本元素)的div元素
				$("#btn4").click(function(){
					$("div:parent").css("background", "#bbffaa");
				});
			});
		</script>

4.3.3 属性过滤器

jQuery 以开头 jquery()_jQuery 以开头_06

<script type="text/javascript" src="script/jquery-1.7.2.js"></script>
<script type="text/javascript">
	/**
[attribute] 			
[attribute=value] 		
[attribute!=value] 		 
[attribute^=value] 		
[attribute$=value] 		
[attribute*=value] 		
[attrSel1][attrSel2][attrSelN]  
	
	
	*/
	$(function() {
		//1.选取含有 属性title 的div元素
		$("#btn1").click(function() {
			$("div[title]").css("background", "#bbffaa");
		});
		//2.选取 属性title值等于'test'的div元素
		$("#btn2").click(function() {
			$("div[title][title='test']").css("background", "#bbffaa");
		});
		//3.选取 属性title值不等于'test'的div元素(*没有属性title的也将被选中)
		$("#btn3").click(function() {
			$("div[title][title!='test']").css("background", "#bbffaa");
		});
		//4.选取 属性title值 以'te'开始 的div元素
		$("#btn4").click(function() {
			$("div[title][title^='te']").css("background", "#bbffaa");
		});
		//5.选取 属性title值 以'est'结束 的div元素
		$("#btn5").click(function() {
			$("div[title][title$='est']").css("background", "#bbffaa");
		});
		//6.选取 属性title值 含有'es'的div元素
		$("#btn6").click(function() {
			$("div[title][title*='es']").css("background", "#bbffaa");
		});
		
		//7.首先选取有属性id的div元素,然后在结果中 选取属性title值 含有'es'的 div 元素
		$("#btn7").click(function() {
			$("div[id][title][title*='es']").css("background", "#bbffaa");
		});
		//8.选取 含有 title 属性值, 且title 属性值不等于 test 的 div 元素
		$("#btn8").click(function() {
			$("div[title][title!='test']").css("background", "#bbffaa");
		});
	});
</script>

4.3.4 表单过滤器

jQuery 以开头 jquery()_jQuery 以开头_07

jQuery 以开头 jquery()_jQuery_08

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Untitled Document</title>
		<script type="text/javascript" src="script/jquery-1.7.2.js"></script>
		<script type="text/javascript">
			$(function(){
				
				
		/**
		:input 		
		:text 		
		:password 	
		:radio 		
		:checkbox 	
		:submit 	
		:image 		
		:reset 		
		:button 	
		:file 		
		:hidden 	
		
		表单对象的属性
		:enabled 		
		:disabled 		
		:checked 		
		:selected 		
		*/
					
					
				//1.对表单内 可用input 赋值操作
				$("#btn1").click(function(){
					$("input:enabled").val("New Value");
				});
				//2.对表单内 不可用input 赋值操作
				$("#btn2").click(function(){
					$("input:disabled").val("New Value Too");
				});
				//3.获取多选框选中的个数  使用size()方法获取选取到的元素集合的元素个数
				$("#btn3").click(function(){
					alert($("input:checked").size())
				});
				//4.获取多选框,每个选中的value值
				$("#btn4").click(function(){
					var str = "";
					var eles = $("input:checked");
					console.log(eles);
					for(var i=0;i<eles.size();i++){
						str += "【"+$(eles[i]).val()+"】";
					}
					alert(str)
				});
				//5.获取下拉框选中的内容  
				$("#btn5").click(function(){
					var str = "";
					//注意这个选择器的特殊,因为select里面的option是真正的被选择项,
					//所以 :selected 选择器和 select[name='test']选择器的关系是子父关系
					//必须按照基本选择器选择后代的方法选
					var els = $("#sele1 > option:selected");
					console.log(els);
					for(var i=0;i<els.size();i++){
						str += "【"+$(els[i]).val()+"】";
					}
					alert(str)
				});
			})	
		</script>
	</head>
	<body>
		<h3>表单对象属性过滤选择器</h3>
		 <button id="btn1">对表单内 可用input 赋值操作.</button>
  		 <button id="btn2">对表单内 不可用input 赋值操作.</button><br /><br />
		 <button id="btn3">获取多选框选中的个数.</button>
		 <button id="btn4">获取多选框选中的内容.</button><br /><br />
         <button id="btn5">获取下拉框选中的内容.</button><br /><br />
		 
		<form id="form1" action="#">			
			可用元素: <input name="add" value="可用文本框1"/><br>
			不可用元素: <input name="email" disabled="disabled" value="不可用文本框"/><br>
			可用元素: <input name="che" value="可用文本框2"/><br>
			不可用元素: <input name="name" disabled="disabled" value="不可用文本框"/><br>
			<br>
			
			多选框: <br>
			<input type="checkbox" name="newsletter" checked="checked" value="test1" />test1
			<input type="checkbox" name="newsletter" value="test2" />test2
			<input type="checkbox" name="newsletter" value="test3" />test3
			<input type="checkbox" name="newsletter" checked="checked" value="test4" />test4
			<input type="checkbox" name="newsletter" value="test5" />test5
			
			<br><br>
			下拉列表1: <br>
			<select name="test" multiple="multiple" style="height: 100px" id="sele1">
				<option>浙江</option>
				<option selected="selected">辽宁</option>
				<option>北京</option>
				<option selected="selected">天津</option>
				<option>广州</option>
				<option>湖北</option>
			</select>
			
			<br><br>
			下拉列表2: <br>
			<select name="test2">
				<option>浙江</option>
				<option>辽宁</option>
				<option selected="selected">北京</option>
				<option>天津</option>
				<option>广州</option>
				<option>湖北</option>
			</select>
		</form>		
	</body>
</html>

4.3.5 jQuery 元素筛选

jQuery 以开头 jquery()_css_09

//(1)eq()  选择索引值为等于 3 的 div 元素
				$("#btn1").click(function(){
					$("div").eq(3).css("background-color","#bfa");
				});
				
				//(4)filter()在div中选择索引为偶数的
                $("#btn4").click(function(){
                    //filter()  过滤   传入的是选择器字符串
                    $("div").filter(":even").css("background-color","#bfa");
                });

五、jQuery的属性操作

jQuery 以开头 jquery()_选择器_10

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="script/jquery-1.7.2.js"></script><!--引入 jQuery 库-->
    <script type="text/javascript">
        $(function () {
            $("p").html("<h1>标签</h1>html()测试");
            $("#p1").text("文本测试<h1>标签</h1>");
            $("input").val("输入框<h1>标签</h1>");
        });
    </script>
</head>
<body>
    <p></p>
    <p id="p1"></p>
    <input type="text"/>
</body>
</html>

jQuery 以开头 jquery()_css_11

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="script/jquery-1.7.2.js"></script><!--引入 jQuery 库-->
    <script type="text/javascript">
        $(function () {
            alert($("div").attr("style"));
            alert($("input").prop("checked"));
        });
    </script>
</head>
<body>
    <div style="background:  red">div标签</div>
    <input checked="checked" type="checkbox"/>java
</body>
</html>

六、DOM的增删改

jQuery 以开头 jquery()_css_12

七、css样式操作

jQuery 以开头 jquery()_选择器_13

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Untitled Document</title>
		<style type="text/css">
			mini {
			    width: 55px;
			    height: 55px;
			    background-color: #aaa;
			    font-size: 12px;
			}
			
			div.hide {
			    display: none;
			}
		</style>
		<script type="text/javascript" src="script/jquery-1.7.2.js"></script>
		<script type="text/javascript">
			$(function () {
				$("div").addClass("mini");//为 div 添加样式

            });
		</script>
	</head>
	<body>
		<div>div标签</div>
	</body>
</html>

八、jQuery动画

jQuery 以开头 jquery()_选择器_14

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Untitled Document</title>
		<style type="text/css">
			div.mini {
			    width: 55px;
			    height: 55px;
			    background-color: #aaa;
			    font-size: 12px;
			}
			
			div.hide {
			    display: none;
			}
		</style>
		<script type="text/javascript" src="script/jquery-1.7.2.js"></script>
		<script type="text/javascript">
			$(function () {
                $("#btn1").click(function () {
                    alert("点击");
                    $("div").hide();
                });
				$("#btn2").click(function () {
				    alert("点击");
                    $("div").show();
                });

            });
		</script>
	</head>
	<body>
		<div class="mini">div标签</div>
	<button id="btn1">隐藏</button>
	<button id="btn2">显示</button>
	</body>
</html>

九、事件操作

9.1 jQuery 和原生 js 页面加载完成区别

jQuery 以开头 jquery()_jQuery 以开头_15

标签显示时需要的内容:例如 iframe中的网址,和 img 中的 图片路径

jQuery 以开头 jquery()_选择器_16

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="script/jquery-1.7.2.js"></script>
    <script type="text/javascript">
        window.onload = function () {
            alert("原生 js 页面加载完成之后-1");
        }
        window.onload = function () {
            alert("原生 js 页面加载完成之后-2");
        }
        window.onload = function () {
            alert("原生 js 页面加载完成之后-3");
        }
        $(function () {
            alert("jQuery 页面加载完成之后-1");
        });
        $(function () {
            alert("jQuery 页面加载完成之后-2");
        });
        $(function () {
            alert("jQuery 页面加载完成之后-3");
        });

    </script>
</head>
<body>
    <iframe src="https:www.baidu.com" height="700" width="700"></iframe>
    <img src="1.jpg"/>
</body>
</html>

9.2 其他事件处理方法

jQuery 以开头 jquery()_css_17


绑定 和 触发 单击事件的区别

触发单击事件:
    对象.click()
绑定单击事件:
   对象.click( function(){} )
区别: 传入函数是绑定,不传函数是触发,触发 相当于点击了一次按钮。
$("h5").bind("click",function () {
					alert('h5单击事件 == bind方法绑定');
				});

9.3 事件冒泡

jQuery 以开头 jquery()_jQuery_18

9.4 事件对象

jQuery 以开头 jquery()_选择器_19


获取事件对象

<script type="text/javascript" src="../../script/jquery-1.7.2.js"></script>
		<script type="text/javascript">
		
			$(function(){
			    $("#panel").click(function ( event ) {
					console.log(event);
                })
			});
		
		</script>

event . type() 可以获取事件类型,和 bind 绑定多个事件合并使用。

jQuery 以开头 jquery()_jQuery 以开头_20

说明:本学习笔记是我在学习尚硅谷视频时记的学习笔记,