IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> jQuery详解(第一篇:对象转换、选择器、过滤器、函数) -> 正文阅读

[JavaScript知识库]jQuery详解(第一篇:对象转换、选择器、过滤器、函数)

一、jQuery基础

1.简介

? jQuery是一款跨主流浏览器的JavaScript库,封装了JavaScript相关方法调用,简化JavaScript对HTML DOM操作。简单的说是高级版的JS。

? JS可以操作DOM,响应事件。原生的JS操作DOM,响应事件,需要很多步骤,调用很多函数、属性才能完成DOM、事件、动画的处理。比如Ajax使用异步对象需要四个步骤,不大方便。

? jQuery就相当于一个工具类。提供了一些方法简化操作。用它使用Ajax是十分方便的。现在几乎所有浏览器都支持jQuery的使用。

? 特点:跨浏览器使用。

1.2下载

? 官网下载即可。两个版本:压缩版体积比较小,适合项目上线后使用。未压缩版相对较大,可读性比较好,适合开发阶段使用。

###1.3.jQuery优点

? (1)少写代码,多做事情

? (2)免费,开源且轻量级的js库,容量很小。

? (3)兼容市面上的主流浏览器

? (4)能够处理HTML/JSP/XML、CSS、DOM、事件、实现动画效果,也能提供异步Ajax功能。

? (5)文档手册很详细。

? (6)成熟的插件可供选择,多种js组件,例如日历组件。

? (7)出错后,有一定的提示信息。

? (8)不用在HTML里面通过<*script >标签插入大量js调用命令。

##2.jQuery使用(环境搭建)

2.1步骤

? 1.需要在你的项目中加入jQuery的文件。idea中是把jQuery放在webapp目录下,一般是创建一个js目录。存放js文件的。对于HBuilder工具,放在项目的js目录中就可以了。

? HBuilder中项目文件下新建JS文件夹。把jQuery.js放到js目录下。

? 2.创建一个HTML文件或者jsp都可以,在文件中使用。

<script type="text/javascript" src="jQuery的文件的相对路径"></script>

? 3.在js代码中,调用jQuery中的函数。

2.1测试环境

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>第一个jQuery例子</title>
        <!-- 引入jquery文件-->
		<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
		<script type="text/javascript">
            //$ 是 jQuery中的函数名
            //document是参数,ready是另一个函数,
            /*
            
            $(document):把js中的document对象变成jQuery可以使用的对象,然后调用ready()的函数。这个			ready()的函数。这个ready()是jquery中的函数。
            
            ready()的执行事件在页面dom对象加载后执行的。相当于js中onload事件。
            ready(函数):表示在页面对象加载后执行这个函数。
 
            */
			$(document).ready(function(){
				alert("使用jquery了");
			})
            
            //上面的jQuery语句就相当于下面的
            $(document).ready(myinit());
			
			function myinit(){
				alert("=====相当于οnlοad=====");
			}
		</script>
	</head>
	<body>
	</body>
</html>

2.2更加简化的方式

		   //jQuery 提供了简单方式,使用ready()
		   //$(	  参数是一个函数 	)
		   $(function(){
			   alert("简单的方式使用ready");
		   })

PS:没有提示的话注意修改语法提示库。

3.对象的分类与转换

? 分为dom对象和jquery对象。在一个文件中同时存在两种对象。

1.dom对象

? 使用js的代码获取,创建的对象。html中的对象都是dom对象。

2.jquery

? 使用jquery获取的对象。

为什么要使用dom对象,还有jquery对象?

? 目的是要dom对象的函数或者属性,以及使用jquery中提供的函数或者属性。用dom中的内容就使用dom对象,要使用jquery函数库中的函数需要使用jquery对象。

? dom对象和jquery对象可以互相转换的。

3.1DOM对象转换jQuery对象

? 使用$(DOM对象)方式,可以DOM对象转换为jQuery对象,转换为jQuery对象才可以使用jQuery中的提供的方法,操作DOM对象。一般情况下,在命名jQuery为了与DOM对象进行区分,习惯性以这个符号开头进行区分,但这不是必须的。

<input type="text" id="t1"/>

//通过js函数获取dom对象。
var dom = document.getElementById("t1");

//把dom转为jquery。
var jqueryObj = $(dom);

//调用jquery中的函数。
//获取dom对象的value属性的值。
jqueryObj.val();

提示:为了区分dom对象和jQuery对象,可以在jQuery对象变量名上,加一个$,例如

var $jqueryObj = $(dom);

例子

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>第一个jQuery例子</title>
		<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
		<script type="text/javascript">

			function btnClick(){
				//获取dom对象
				var obj = document.getElementById("btn");
				//转为jQuery类型的对象
				var $jobj = $(obj);
				//调用jQuery中的函数
				alert($jobj.val());
			}

		</script>
	</head>
	<body>
		<input type="button" id="btn" value="我是按钮" onclick="btnClick()"/>
	</body>
</html>

3.2jQuery对象转换DOM对象

语法:jquery对象是一个数组,数组成员是dom对象。使用[下标]或get(下标)

<input type="text" id="txt1">
//使用jQuery的方式表示这个dom对象;
//$("#txt1"):获取id是txt1的dom对象。//obj是一个jQuery对象,是一个包含了一个成员的dom数组。 obj[0]就是dom对象。
var obj = $("#txt1");

var dom = obj[0];
//或者
var dom = obj.get(0);

//使用dom对象的函数或者属性
alert(dom.value);

示例:计算平方值

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>jQuery转dom</title>
		<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
		<script type="text/javascript">

			function btnClick(){
				//使用jQuery语法,获取jQuery对象
				var $obj = $("#txt1");
				//从数组中获取成员,成员是dom对象
				var dom = $obj[0];
				//调用dom的属性或者函数
				//alert(dom.value);
				var num = dom.value;
				dom.value = num*num;
			}

		</script>
	</head>
	<body>
		<input type="text" id="txt1" value="请输入整数"/>
		<br />
		<input type="button" id="btn" value="计算平方" onclick="btnClick()"/>
	</body>
</html>

二、选择器

? 选择器:就是定位条件;jquery函数定位满足条件的DOM对象。定位对象的字符串。使用这个字符串作为条件定位dom对象。

? 可以使用id,class样式名称,标签名称等作为选择器使用,定位dom对象。

1.基本选择器

##1.1id选择器、class选择器、标签选择器

? 根据ID,class属性,标签类型名定位HTML元素,转为jQuery对象。

? 1.使用dom对象的id作为条件。

$("#id");

? 2.class选择器,使用对象的class名称定位dom对象。

$(".class名称");

? 3.标签选择器,使用标签名称作为条件定位dom对象。

$("标签名称0");

1.1选择器实例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>jQuery转dom</title>
		<style type="text/css">
			div{
				background: gray;
				width: 200px;
				height: 100px;
			}
			.two{
				font-size: 20pt;
				color: aqua;
			}
		</style>
		
		<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
		<script type="text/javascript">
			function fun1(){
				//id选择器
				var obj = $("#one");
				obj.css("background","red");
				
			}
			
			function fun2(){
				//class选择器(样式选择器)
				var obj = $(".two");
				//jQuery对象是数组,在使用jQuery函数时,把数组每个成员都应用css函数.
				obj.css("background","blue");	
			}
			
			function fun3(){
				//标签名称选择器
				var obj = $("div");
				obj.css("background","green");
			}

		</script>
	</head>
	<body>
		<div id="one">我是id=one的div</div>
		<br />
		<div class="two">我是class=two的div</div>
		<br />
		<div>没有id,class</div>
		<br />
		<span>我是span</span>
		<br />
		<br />
		
		<input type="button" value="获取id=one的dom对象" onclick="fun1()"/>
		<br />
		<input type="button" value="获取class=two的dom对象" onclick="fun2()"/>
		<br />
		<input type="button" value="获取标签是div的dom对象" onclick="fun3()"/>
	</body>
</html>

1.2所有选择器和组合选择器

? 4.所有选择器:选取页面中所有DOM对象。

$("*");

? 5.组合选择器

? 组合选择器是多个被选对象间使用逗号分隔后形成的选择器,可以组合id,class,标签名等。可以任意组合。

$("#id,.class,标签名");

1.2实例

			function fun4(){
				//所有选择器
				var obj = $("*");
				obj.css("background","orange");
			}
			function fun5(){
				//组合选择器
				var obj = $("#one,span");
				obj.css("background","yellow");
			}

<input type="button" value="获取所有的dom对象" onclick="fun4()"/>
<br />
<input type="button" value="获取组合选择的dom对象" onclick="fun5()"/>

2.表单选择器

? 表单选择器使用dom对象的type属性值定位dom对象的,和form标签无关。

? 表单相关元素选择器是指文本框、单选框、复选框、下拉列表等元素的选择方式。该方法无论是否存在表单form,均可做出相应的选择。表单选择器是为了能更加容易地操作表单,表单选择器是根据元素类型来定义的。

<input type="text ">
<input type="password ">
<input type="radio ">
<input type="checkbox ">
<input type="button ">
<input type="file ">
<input type="submit ">
<input type="reset">

PS: $(":tr"):不能用,tr不是input标签。

? 语法:

$(":type属性值");

2.1实例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>表单选择器</title>
		<style type="text/css">
			div{
				background: gray;
				width: 200px;
				height: 100px;
			}
			.two{
				font-size: 20pt;
				color: aqua;
			}
		</style>
		
		<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
		<script type="text/javascript">
			function fun1(){
				
				//使用表单选择器,获取dom对象
				var obj = $(":text");
				alert(obj.val());
				
			}
			
			function fun2(){
				//$(":radio");
				var obj = $(":radio");
				for(var i = 0;i<obj.length;i++){
					
					//dom是dom对象.
					var dom = obj[i];
					alert("dom的属性="+dom.value+",使用jQuery的函数="+$(dom).val());
					
				}
			}
			
			function fun3(){
				var obj = $(":checkbox");
				for(var i = 0;i<obj.length;i++){
					//obj.val()是可以的,它也是dom数组,所有obj[i]要转为jQuery对象.
					alert($(obj[i]).val());
					
				}
			}


		</script>
	</head>
	<body>
		<p>文本框</p>
		<input type="text" value="我是type=text"/><br/>
		<p>radio</p>
		<input type="radio" value="man"/><br/>
		<input type="radio" value="woman"/><br/>
		<br />
		<p>checkbox</p>
		<input type="checkbox" value="bike"/>骑行 <br />
		<input type="checkbox" value="football"/>足球 <br />
		<input type="checkbox" value="music"/>音乐 <br />
		<br />
		<br />
		<input type="button" value="读取文本框的value值" onclick="fun1()"/>
		<br />
		<input type="button" value="读取radio的value值" onclick="fun2()"/>
		<br />
		<input type="button" value="读取checkbox的value值" onclick="fun3()"/>
		
		
		
	</body>
</html>

三、过滤器

? jQuery对象中存储的DOM对象顺序与页面标签声明位置关系。

? 过滤器是一个字符串,用来筛选dom对象的,过滤器是和选择器一起使用的。在选择了dom对象后,再进行过滤筛选。

<div>1</div> dom1
<div>2</div> dom2
<div>3</div> dom3
$("div") ==[dom1,dom2,dom3]

? 过滤器就是过滤条件,对已经定位到数组中DOM对象进行过滤筛选,过滤条 件不能独立出现在 jquery 函数,如果使用只能出现在选择器后方。

3.1基本过滤器

? 使用dom对象在数组中的位置,作为过滤条件的。

? 1.选择第一个first,保留数组中第一个DOM对象

$("选择器:first");

? 2.选择最后个last,保留数组中最后DOM对象。

$("选择器:last");

? 3.选择数组中指定对象

$("选择器:eq(数组索引)");

? 4.选择大于某个下标的所有成员

$("选择器:gt(下标)")

? 5.选择小于某个下标的所有成员。

$("选择器:lt(下标)");

实例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>基本过滤器</title>
		<style type="text/css">
			div{
				background: gray;

			}

		</style>
		
		<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
		<script type="text/javascript">
			//绑定事件
			$(function(){
				$("#btn").click(function(){
					alert("button单击了,执行处理函数");
				})
				
				//btn1事件
				$("#btn1").click(function(){
					//第一个dom对象
					var obj = $("div:first");
					
					obj.css("background","blue");
					//这样无法获取值
					alert(obj.val());
				})
				
				//btn2事件
				$("#btn2").click(function(){
					//选择最后一个div
					var obj = $("div:last");		
					obj.css("background","red");
				})
				
				//btn3绑定事件
				$("#btn3").click(function(){
					//等于指定下标的	
					$("div:eq(3)").css("background","red");
				})
				
				//btn4
				$("#btn4").click(function(){
					//等于指定下标的	
					$("div:lt(3)").css("background","orange");
				})
				
				$("#btn5").click(function(){
					//等于指定下标的	
					$("div:gt(3)").css("background","red");
				})
				
				
			});
		
		
		
		</script>
	</head>
	<body>
		<div id="one">我是div-0</div>
		<div id="two">我是div-1</div>
		<div>
			我是div-2
			<div>我是div-3</div>
			<div>我是div-4</div>
		</div>
		<div>我是div-5</div>
		<br />
		<br />
		<span>我是span</span>
		
		<br />
		<br />
		<input id="btn" type="button" value="绑定事件" /><br />
		<input id="btn1" type="button" value="获取第一个div" /><br />
		<input id="btn2" type="button" value="获取最后一个div" /><br />
		<input id="btn3" type="button" value="选择下标等于3的div" /><br />
		<input id="btn4" type="button" value="选择下标小于3的div" /><br />
		<input id="btn5" type="button" value="选择下标大于3的div" /><br />
		
		
		
	</body>
</html>

2.表单对象属性过滤器

? 根据对象的状态作为条件,筛选dom对象。

? 1.选择可用的文本框

$(":text:enabled");

? 2.选择不可用的文本框

$(":text:disabled");

? 3.复选框选中的元素

$(":checkbox:checked");

? 4.选择指定下拉列表的被选中元素。

$("选择器>option:selected");

? 比如选中id为lang的select就可以获取被选中的option。

<select id="lang">
    <option value="java">java</option>
    <option value="sql">sql</option>
</select>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>基本过滤器</title>
		<style type="text/css">
			div{
				background: gray;

			}

		</style>
		
		<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
		<script type="text/javascript">
			//绑定事件
			$(function(){
				
				//btn1事件
				$("#btn1").click(function(){
					//给所有可操作的input输入hello;
					var obj = $(":text:enabled");
					obj.val("hello");
				})
					
			    $("#btn2").click(function(){
					//选中的复选框
					var obj = $(":checkbox:checked");
					for(var i = 0;i < obj.length;i++ ){
						console.log(obj[i].value+",jquery="+$(obj[i]).val());
					}
				})
				
				$("#btn3 ").click(function(){
					//下拉列表框选中值
					var obj = $("select>option:selected");
					console.log(obj.val());
				})
				
				
				
			});
		
		
		
		</script>
	</head>
	<body>
		
		<input type="text" value="文本1"/><br />
		<input type="text" value="文本2" disabled="true"/><br />
		<input type="text" value="文本3"/><br />
		<input type="text" value="文本4" disabled /><br />
		
		<br />
		<br />
		
		<input type="checkbox" value="游泳" />游泳<br />
		<input type="checkbox" value="健身" checked="true"/>健身<br />
		<input type="checkbox" value="电子游戏" checked />电子游戏<br />
		
		<br />
		<br />
		
		<select id="lang">
			<option value="java">java语言</option>
			<option value="go" selected>go语言</option>
			<option value="python">python语言</option>
		</select>
		
		<br />
		<br />
		<button id="btn1">给所有可用的文本框设置value为hello</button><br />
		<button id="btn2">显示选中的复选框的值</button><br />
		<button id="btn3">显示选中的下拉列表框</button><br />


	</body>
</html>

四、函数

##1.第一组常用函数

###1.1.val():操作dom对象的value值

? val():没有参数,获取dom数组中第一个dom对象的value值。

? val(参数):有参数,给dom数组中所有dom对象的value属性赋值。

###1.2.text():操作标签的文本内容,标签开始和结束之间的内容。

? text():没有参数,把dom数组中所有dom对象的文本内容连接起来,形成一个字符串,并返回这个字符串。

? text(参数):给dom数组中的所有成员统一赋予新的文本。

###1.3.attr():操作value,文本以外的属性时。

? attr(“属性名”):获取dom数组中第一个dom成员的此属性值。

? attr(“属性名”,“属性值”):给dom数组中所有dom成员此属性赋值。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>函数</title>
		<style type="text/css">
			div{
				background: gray;

			}

		</style>
		
		<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
		<script type="text/javascript">
			//绑定事件
			$(function(){
				$("#btn1").click(function(){
					//获取第一个dom对象的value值
					var txt = $(":text").val();
					alert("第一个文本框的value="+txt);
				})
				
				$("#btn2").click(function(){
					//给所有的文本框赋值,新的value
					$(":text").val("三国演义");
				})
				
				$("#btn3").click(function(){
					//使用text()函数,读取文本内容.
					//因为有三个div,所以得到的结果会把三个字符串连到一起.
					alert($("div").text());
				})
				
				$("#btn4").click(function(){
					$("div").text("我是div");
					
				})
				
				$("#btn5").click(function(){
					//读取src的属性中,使用attr()
					var txt = $("img").attr("src");
					alert("图片的地址"+txt);
				})
				
				$("#btn6").click(function(){
					//设置新的图片
					$("#img1").attr("src","img/ex2.jpg");
				})
				
				
				
				
			});
		
		
		
		</script>
	</head>
	<body>
		
		<input type="text" value="刘备" /><br />
		<input type="text" value="关羽" /><br />
		<input type="text" value="张飞" /><br />
		<br />
		<div>我们学习的是开发语言</div>
		<div>,java语言</div>
		<div>,是面向对象的OOP</div>
		<br />
		<br />
		<img id="img1" src="img/ex1.jpg" />
		<br />
		<br />
		<button id="btn1">读取第一个文本框的value值</button><br />
		<button id="btn2">给文本框赋予新值</button><br />
		<button id="btn3">读取div的所有文本</button><br />
		<button id="btn4">设置div的文本值</button><br />
		<button id="btn5">读取src的属性值</button><br />
		<button id="btn6">设置src的属性值,换一个图片</button><br />
		


	</body>
</html>

五、事件

1.定义事件监听元素

1.1第一种事件绑定语法

语法:

$(选择器).监听事件名称(处理函数);

? $(选择器):选择0或多个dom对象。给他们绑定事件。

? 事件名称:就是JS中去掉on的部分。例如单击事件onclick,这里的事件名称就是click。

? 事件的处理函数:函数定义,当事件发生时,执行这个函数。

说明:监听事件名称是js事件中去掉on后的内容,js中的onclick的监听事件名称是click。

例如:

<input type="button" id="btn" value="绑定事件" />
//绑定事件;
$("#btn").click(function(){单机的处理代码});




		<input id="btn" type="button" value="读取checkbox的value值" />
		<script type="text/javascript">
			//绑定事件
			$("#btn").click(function(){
				alert("button单击了,执行处理函数");
			})
		
		
		<script>

PS:

? 1.js代码是从上往下执行,如果把js代码放到上面无法找到input,所以不能执行。所以js代码放到最后才可以执行上面的代码!

? 2.还有另一种写法放在HTML页面head中也可以执行

			//绑定事件

//页面对象加载后执行,相当于onload事件。
			$(function(){
				$("#btn").click(function(){
					alert("button单击了,执行处理函数");
				})
			});

btn6">设置src的属性值,换一个图片

</body>





# 五、事件

## 1.定义事件监听元素

### 1.1第一种事件绑定语法

语法:

```js
$(选择器).监听事件名称(处理函数);

? $(选择器):选择0或多个dom对象。给他们绑定事件。

? 事件名称:就是JS中去掉on的部分。例如单击事件onclick,这里的事件名称就是click。

? 事件的处理函数:函数定义,当事件发生时,执行这个函数。

说明:监听事件名称是js事件中去掉on后的内容,js中的onclick的监听事件名称是click。

例如:

<input type="button" id="btn" value="绑定事件" />
//绑定事件;
$("#btn").click(function(){单机的处理代码});




		<input id="btn" type="button" value="读取checkbox的value值" />
		<script type="text/javascript">
			//绑定事件
			$("#btn").click(function(){
				alert("button单击了,执行处理函数");
			})
		
		
		<script>

PS:

? 1.js代码是从上往下执行,如果把js代码放到上面无法找到input,所以不能执行。所以js代码放到最后才可以执行上面的代码!

? 2.还有另一种写法放在HTML页面head中也可以执行

			//绑定事件

//页面对象加载后执行,相当于onload事件。
			$(function(){
				$("#btn").click(function(){
					alert("button单击了,执行处理函数");
				})
			});

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-31 16:32:00  更:2021-07-31 16:32:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/6 20:37:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码