当前位置: 首页 > article >正文

初识jQuery

jQuery简介

  • jQuery由美国人John Resig于2006年创建
  • jQuery是目前最流行的JavaScript程序库,它是对JavaScript对象和函数的封装
  • 它的设计思想是write less,do more

例:实现隔行变色效果,只需一句关键代码

<!DOCTYPE html>
<html>
<head>
    <title>订单表格</title>
</head>
<!-- 导入jQuery库 -->
<script src="js/jquery-1.8.3.js"></script>
<script>
	$(function(){
		$("tr:even").css("background-color","#ccc");
	})
</script>
<body>
    <table border="1px solid red" cellspacing=0>
        <thead>
            <tr>
                <th>序号</th>
                <th>订单号</th>
                <th>商品名称</th>
                <th>价格</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>1</td>
                <td>1001</td>
                <td>商品A</td>
                <td>$10.00</td>
            </tr>
            <tr>
                <td>2</td>
                <td>1002</td>
                <td>商品B</td>
                <td>$20.00</td>
            </tr>
            <tr>
                <td>3</td>
                <td>1003</td>
                <td>商品C</td>
                <td>$15.00</td>
            </tr>
        </tbody>
    </table>
</body>
</html>

jQuery能做什么

  • 访问和操作DOM元素
  • 控制页面样式
  • 对页面事件进行处理
  • 扩展新的jQuery插件
  • 与Ajax技术完美结合

总结:jQuery能做的JavaScript也都能做,但使用jQuery能大幅提高开发效率

 jQuery的优势

  • 体积小,压缩后只有100KB左右
  • 强大的选择器
  • 出色的DOM封装
  • 可靠的事件处理机制
  • 出色的浏览器兼容性
  • 使用隐式迭代简化编程
  • 丰富的插件支持

获取jQuery

进入jQuery官网:jQuery官网

jQuery库文件

  •  jQuery库分开发版和发布版
名称大小说明
jquery-1.版本号.js(开发版)约268KB完整无压缩版本,主要用于测试、学习和开发
jquery-1.版本号.min.js(发布版)约91KB经过工具压缩或经过服务器开启Gzip压缩,主要应用于发布的产品和项目
  •  在页面中引入jQuery
    • <script src="js/jquery-1.8.3.js" type="text/javascript"></script>
      

 jQuery基本语法

例:第一个jQuery程序(为页面加载事件绑定方法)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<title>第一个jQuery程序</title>
		<script src="js/jquery-1.8.3.js" type="text/javascript"></script>
	</head>
	<script type="text/javascript">
	$(document).ready(function(){
		alert("Hello jQuery!");
	});
	</script>
	<body>
	</body>
</html>

$(document).ready()

  • $(document).ready()与window.onload类似,但也有区别
window.onload$(document).ready()
执行时机必须等待网页中所有的内容加载完毕后(包括图片、flash、视频等)才能执行网页中所有DOM文档结构绘制完毕后即刻执行,可能与DOM元素关联的内容(图片、flash、视频等)并没有加载完
编写个数同一页面不能同时编写多个同一页面能同时编写多个
简化写法$(function(){   //执行代码 }) ;

扩展:

DOM模型

  • 浏览器可以把HTML文档显示成可视图形
  • 浏览器把HTML文档的元素转换成节点对象,所有节点组成了一个树状结构

  • 把这些节点对象按照一定顺序绘制到浏览器窗口中
    • 以对象描述文档的方式就是DOM
    • 节点对象就被称为DOM对象

节点类型

  • 元素节点:文档中的所有元素
<h2>……</h2>   
  • 文本节点:元素节点内的文本内容
<p>你最喜欢的食品是? </p>      
  • 属性节点:元素节点的子节点
<p title="提示">……</p>     

DOM对象和jQuery对象

  • DOM对象:直接使用JavaScript获取的节点对象
var objDOM=document.getElementById("title"); 

var objHTML=objDOM.innerHTML;  
  • jQuery对象:使用jQuery包装DOM对象后产生的对象,它能够使用jQuery中的方法
$("#title").html( );
等同于
document.getElementById("title").innerHTML;

DOM对象和jQuery对象分别拥有一套独立的方法,不能混用

 jQuery初体验

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<title>jquery初体验</title>
		<script src="js/jquery-1.8.3.js" type="text/javascript"></script>
	</head>
	<script type="text/javascript">	
		$(function(){
			// alert(document.getElementById("btn").value);
			alert($("#btn").val());
			// alert(document.getElementsByTagName("a").length);
			alert($("a").size());
			alert($(".txt").size());
			// alert(document.getElementById("title").innerHTML);
			alert($("#title").html());
		})
	</script>
	<body>
		<div id="title"><h3>示例2.1</h3></div>
		<a href="www.baidu.com">百度</a>
		<a href="www.163.com">网易</a>
		<input type="text" class="txt" value="1"/>
		<input type="text" class="txt" value="2" />
		<input type="button" id="btn" value="ok" />
	</body>
</html>

jQuery语法结构

语法:

$(selector).action() ;
  • 工厂函数$():将DOM对象转化为jQuery对象
  • 选择器 selector:获取需要操作的DOM 元素
  • 方法action():jQuery中提供的方法,其中包括绑定事件处理的方法

jQuery代码风格

  • “$”等同于“ jQuery ”
$(document).ready()=jQuery(document).ready()
$(function(){...})=jQuery (function(){...})  
  • 操作连缀书写

 $("h2").css("background-color","#CCFFFF")
.next().css("display","block");

常用语法举例

语法说明
css("属性","属性值")为元素设置CSS样式的值
addClass()为元素添加类样式
next()获得元素其后紧邻的同辈元素

例1:使用jQuery变换网页效果

  • 实现思路
    • 在新建的HTML文档中引入jQuery库
    • 使用$(document).ready()创建文档加载事件
    • 使用$(选择器)选取所需元素
    • 使用css( )方法为所选取的元素添加CSS样式

示例代码:需要自行导入图片和jquery.js文件

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-1.8.3.js"></script>
	</head>
	<script>
		$(function(){
			$("h2").click(function(){
				$("h2").css("color","red").css("font-size","50px");
				$("#p1").css('color',"red");
			});
			
			$("#a1").click(function(){
				document.getElementById("p1").innerText= "北国风光,千里冰封,万里雪飘。望长城内外,惟余莽莽;大河上下,顿失滔滔。山舞银蛇,原驰蜡象,欲与天公试比高。须晴日,看红装素裹,分外妖娆。江山如此多娇,引无数英雄竞折腰。惜秦皇汉武,略输文采;唐宗宋祖,稍逊风骚。一代天骄,成吉思汗,只识弯弓射大雕。俱往矣,数风流人物,还看今朝";
				$("p1").css("font-size","20px").css("color","#e6005c");
				
			})
		})
	</script>
	<body>
		<h2>沁园春·雪</h2>
		<p id="p1">北国风光,千里冰封,万里雪飘。
			望长城内外,惟余莽莽;大河上下,顿失滔滔。
			山舞银蛇,原驰蜡象,欲与天公试比高。
			须晴日,看红装素裹,分外妖娆。
			江山如此多娇...</p>
			<a href="javascript:void(0)" id="a1">点击查看全部</a><br />
			<img src="img/毛选.jpg" alt="毛泽东选集" width="400px" />
	</body>
</html>


例2:使用addClass()为图片添加边框

需求说明:点击页面中的图片后,图片外围加上边框

示例代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-1.8.3.js"></script>
	</head>
	<script>
		$(function(){
			$("img").click(function(){
				$("img").css("border","2px solid #CCCCCC");
			})
		})
	</script>
	<body>
		<img src="img/雪花宝宝.png" alt="雪花宝宝" width="400px"/>
	</body>
</html>

例3:制作帮助中心问答特效

需求说明:点击标题后,显示回答的内容,同时标题加上背景色

示例代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-1.8.3.js"></script>
		<style>
			p{
				display: none;
			}
		</style>
		<script>
			$(function(){
				$(".h1").click(function(){
					$(".h1").css("color","#000080")
					$(".c1").css("display","block").css("color","#e63995");
				});
				
				$(".h2").click(function(){
					$(".h2").css("color","#000080")
					$(".c2").css("display","block").css("color","#e63995");
				});
				$(".h3").click(function(){
					$(".h3").css("color","#000080")
					$(".c3").css("display","block").css("color","#e63995");
				});
			})
		</script>
	</head>
	<body>
		<h2 class="h1">问:地球的大气层有几层?</h2>
		<p class='c1'>答:地球的大气层通常分为五层,分别是对流层、平流层、中间层、热层和外层空间。</p>
		
		<h2 class="h2">问:人类的DNA和黑猩猩的DNA有多少相似?</h2>
		<p class="c2">答:人类的DNA大约有98.7%与黑猩猩的DNA相似。</p>
		
		<h2 class="h3">问:太阳系中最大的行星是哪一颗?</h2>
		<p class="c3">答:太阳系中最大的行星是木星,它的体积和质量都远远超过其他行星。</p>

	</body>
</html>

each( )简化表单验证

需求:表单项必须全部填写才能提交

 未使用jQuery的表单验证(原生的表单验证)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-1.8.3.js"></script>
	</head>
	<script>
		function check(){
			var txtArray=document.getElementsByTagName("input");
			for(var j=0;j<txtArray.length;j++){
			if(txtArray[j].type!="submit")
			{
				if(txtArray[j].value==""){
				alert("所有的文本框都必须填写!");
				return false;
			}
				}
		}
}


	</script>
	<body>
			<table width="35%" height="160" border="0" align="center">
				<tr>
					<td height="32" colspan="2" align="center">用户登录</td>
				</tr>
				<tr>
					<td width="29%" height="36">登录名称:</td>
					<td width="71%"><input class="text" type="text"/></td>
				</tr>
				<tr>
					<td height="38">登录密码:</td>
					<td><input class="text" type="password" /></td>
				</tr>
				<tr>
					<td colspan="2" align="center"><input type="submit" id="btn" value="登录" onclick="check()"/></td>
				</tr>
			</table>
	</body>
</html>

使用jQuery的表单验证

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-1.8.3.js"></script>
	</head>
	<script>	
		$(function(){
			$("#btn").click(function(){
				$(".text").each(function(){
					if($(this).val()==""){
						alert("所有的文本框都必须填写!");
						return false;
					}
				})
			})
		})

	</script>
	<body>
			<table width="35%" height="160" border="0" align="center">
				<tr>
					<td height="32" colspan="2" align="center">用户登录</td>
				</tr>
				<tr>
					<td width="29%" height="36">登录名称:</td>
					<td width="71%"><input class="text" type="text"/></td>
				</tr>
				<tr>
					<td height="38">登录密码:</td>
					<td><input class="text" type="password" /></td>
				</tr>
				<tr>
					<td colspan="2" align="center"><input type="submit" id="btn" value="登录" /></td>
				</tr>
			</table>
	</body>
</html>

DOM对象转jQuery 对象

  • 使用$()函数进行转化:$(DOM对象)
var txtName =document.getElementById("txtName"); //DOM对象

var $txtName =$(txtName);   //jQuery对象

var $txtName=$("#txtName");  //简化形式

jQuery对象命名一般约定以$开头 在事件中经常使用$(this),this是触发该事件的对象

 jQuery对象转DOM对象

  •  jQuery对象是一个类似数组的对象,可以通过[index]的方法得到相应的DOM对象
var $txtName =$ ("#txtName");      //jQuery对象

var txtName =$txtName[0];            //DOM对象
  • 通过get(index)方法得到相应的DOM对象
var $txtName =$("#txtName");        //jQuery对象

var txtName =$txtName.get(0);       //DOM对象

总结

  • jQuery的基本语法结构是
$(selector).action() ;
  • 常用选择器
    • ID选择器
    • 标签选择器
    • 类选择器
  • 设置样式的方法
    • css()
    • addClass()
  • DOM对象和jQuery对象可以相互转化

http://www.kler.cn/a/294257.html

相关文章:

  • 【论文阅读】Virtual Compiler Is All You Need For Assembly Code Search
  • 通过MongoDB Atlas 实现语义搜索与 RAG——迈向AI的搜索机制
  • DBeaver 连接 OceanBase Oracle 租户
  • vue面试题7|[2024-11-14]
  • Elasticsearch基本概念及使用
  • Docker compose部署portainer
  • Android 15 新特性快速解读指南
  • 使用bert_base_chinese实现文本语义相似度计算
  • Spring Boot-自定义banner
  • 视频提取字幕的软件有哪些?高效转录用这些
  • react的useRef作用是什么怎么使用
  • Android Camera系列(一):SurfaceView+Camera
  • 数据结构,单向链表
  • 【2024高教社杯全国大学生数学建模竞赛】B题完整解析(含论文、代码分享)
  • 7个 C# 高阶用法详解:从基础到实战
  • 微信小程序实践案例
  • Kafka Broker处于高负载状态(例如消息处理量大或系统资源不足),无法及时响应消费者的请求
  • 智能工厂程序设计 之1 智能工厂都本俱的方面(Facet,Aspect和Respect)即智能依赖的基底Substrate 之1
  • 机械学习—零基础学习日志(概率论总笔记4)
  • JAVA基础:JVM中方法的执行过程和方法的重载,递归,可变参数的含义
  • MySQL——视图(一)视图概述
  • 59.以太网数据回环实验(2)硬件资源梳理及系统框图
  • 桶排序【算法 14】
  • OpenCV结构分析与形状描述符(8)点集凸包计算函数convexHull()的使用
  • java设计模式day02--(创建型模式:工厂模式、原型模式、建造者模式)
  • 【python】python指南(三):使用正则表达式re提取文本中的http链接