jQuery

jQuery

概述

John Resig 在2006年1月发布的一款跨主流浏览器的 JavaScript 库,简化 JavaScript 对 HTML 操作

【API文档】https://jquery.cuishifeng.cn/index.html

为什么要使用 jQuery

  1. 写少代码,做多事情【write less do more】
  2. 免费,开源且轻量级的js库,容量很小
    注意:项目中,提倡引用min版的js库
  3. 兼容市面上主流浏览器,例如 IE,Firefox,Chrome
    注意:jQuery不是将所有JS全部封装,只是有选择的封装
  4. 能够处理HTML/JSP/XML、CSS、DOM、事件、实现动画效果,也能提供异步AJAX功能
  5. 文档手册很全,很详细
  6. 成熟的插件可供选择
  7. 提倡对主要的html标签提供一个id属性,但不是必须的
  8. 出错后,有一定的提示信息
  9. 不用再在html里面通过 script 标签插入一大堆js来调用命令了

使用

1、引入库文件

<!--【推荐】引入本地资源,没网也能用-->
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>

<!--微软jquery压缩版引用地址-->
<script
src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-1.8.3.min.js"></script>

<!--【卡】官网jquery压缩版引用地址-->    
<script src="https://code.jquery.com/jquery-1.8.3.min.js"></script>

<!--微软jquery压缩版引用地址-->
<script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-3.5.1.min.js"></script>

<!--【卡】官网jquery压缩版引用地址-->
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>

2、查阅 API 文档

https://jquery.cuishifeng.cn/

js 对象和 jQuery 对象相互转换

js 对象转成 jQuery 对象【重点】
语法:$(js对象)---->jQuery对象
例如:$(divElement)---->$div
例如:$(this)---->$this
注意:jQuery对象将js对象做了封装,js对象两边无引号
jQuery 对象转成 js 对象
语法1:jQuery对象[下标,从0开始]
语法2:jQuery对象.get(下标,从0开始)
例如:$div[0]---->divElement
注意:不同的对象只能调用对应的api方法,即jQuery对象不能调用js对象的api,反之亦然

js 对象和 jQuery 对象的区别

(1)js对象的三种基本定位方式
    (A)通过ID属性:document.getElementById()
    (B)通过NAME属性:document.getElementsByName()
    (C)通过标签名:document.getElementsByTagName()
    
(2)jQuery对象的三种基本定位方式
    (A)通过ID属性:$("#id属性值")
    (B)通过标签名:$("标签名")
    (C)通过CLASS属性:$(".样式名")
    
(3)js对象出错的显示
     没有合理的提示信息
    例如:alert(document.getElementById("usernameIDD").value)
    
(4)jQuery对象出错的显示
     有合理的提示信息,例如:undefined
    例如:alert($("#usernameIDD").val())	

jQuery 中常用 API

通过方法,能操作web页面(HTML/JSP)中的任何标签

(1)val():获取标签的value属性值,前提是该标签有value属性
(2)html():获取标签之间的内容,不能应用于xml文件
(3)text():获取标签之间的内容,可以用运于html/jsp和xml文件【建议】
(4)css():获取或添加加key-value形成的css样式
(5)length:获取jQuery对象/数组中元素的个数

注意:在写 jQuery 代码时,不光可以使用 jQuery 的API,还能使用传统JS的API

jQuery 选择器

通过九类选择器,能定位web页面(HTML/JSP/XML)中的任何标签

(1)基本选择器
(2)层级选择器
(3)增强基本选择器
(4)内容选择器
(5)可见性选择器
(6)属性选择器
(7)子元素选择器
(8)表单选择器
(9)表单对象属性选择器

案例代码一:基本选择器

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>基本选择器</title>
		<script type="text/javascript" src="../js/jquery.min.js"></script>
	</head>
	<body>
		<div id="id">嘻嘻</div>
		<div class="class">哈哈</div>
		<div>呵呵</div>
	</body>
	<script>
		// id选择器获取元素
		var idElement = $("#id");
		
		// class选择器获取元素
		var classElement = $(".class");
		
		// 标签选择器获取元素
		var divElement = $("div");
		
		console.log(idElement.text());
		console.log(classElement.text());
		console.log(divElement.length);
	</script>
</html>

案例代码二:层级选择器

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>增强基本选择器</title>
		<script type="text/javascript" src="../js/jquery.min.js"></script>
	</head>
	<body>
		<div id="div1">
			<div id="div2">嘻嘻
				<div class="divClass1">哈哈</div>
			</div>
			
			<div class="divClass2">呵呵</div>
			<div id="div3">呀呀</div>
		</div>
		
	</body>
	<script>
		// 获取所有div的个数
		console.log($("div").length);
		
		// 获取呵呵所在的div的值
		console.log($("#div1 .divClass2").html());
		
		// 获取哈哈所在的div的值
		console.log($("#div1 #div2 .divClass1").text());
		
		// 在给定的父元素下匹配所有的子元素
		console.log($("#div1 > div").text());
		
		// 匹配所有紧接在 div2 元素后的 div 元素
		console.log($("#div2 + div").text());
		
		// 匹配 div2 元素之后的所有 div 元素
		console.log($("#div2 ~ div").text());
		
		// 指定任意多个选择器,并将匹配到的元素合并到一个结果内
		console.log($("#div1, .divClass2, #div2").length)
	</script>
</html>

案例代码三:增强基本选择器

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>增强基本选择器</title>
		<script type="text/javascript" src="../js/jquery.min.js"></script>
	</head>
	<body>
		<ul>
		    <li>list item 1</li>
		    <li>list item 2</li>
		    <li>list item 3</li>
		    <li>list item 4</li>
		    <li>list item 5</li>
		</ul>
		
		<h1>一级标题</h1>
		<h2>二级标题</h2>
		<h6>三级标题</h6>
		
	</body>
	<script>
		// 获取第一个li标签
		console.log($("li:first").html());
		
		// 获取第二个li标签
		console.log($("li:last").text());
		
		// 匹配所有索引值为奇数的元素,从 0 开始计数
		console.log($("li:odd").length);
		
		// 匹配所有索引值为偶数的元素,从 0 开始计数
		console.log($("li:even").length);
		
		// 【重点】匹配一个给定索引值的元素
		console.log($("li:eq(1)").html());
		
		// 匹配所有大于给定索引值的元素
		console.log($("li:gt(1)").length);
		
		// 匹配如 h1, h2, h3之类的标题元素
		$(":header").css({"color":"red"});
	</script>
</html>

案例代码四:内容选择器

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>内容选择器</title>
		<script type="text/javascript" src="../js/jquery.min.js"></script>
	</head>
	<body>
		<div>青花瓷</div>
		<div>告白气球</div>
		<div>千里之外</div>
		<div>菊花台</div>
		
		<p></p>
		
		<div><p>真香</p></div>
		
		<table>
		  <tr><td>Value 1</td><td></td></tr>
		  <tr><td>Value 2</td><td></td></tr>
		</table>
		
	</body>
	<script>
		// 匹配包含给定文本的元素
		console.log($("div:contains('青花瓷')").text());
		
		// 匹配所有不包含子元素或者文本的空元素
		console.log($("p:empty").length);
		
		// 匹配含有选择器所匹配的元素的元素
		$("div:has(p)").addClass("class");
		
		console.log($(".class").html());
		
		// 匹配含有子元素或者文本的元素
		console.log($("td:parent").length);
	</script>
</html>

案例代码五:可见性选择器

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>可见性选择器</title>
		<script type="text/javascript" src="../js/jquery.min.js"></script>
	</head>
	<body>
		<table>
		  <tr style="display:none"><td>Value 1</td></tr>
		  <tr><td>Value 2</td></tr>
		</table>
		
		<form>
		  <input type="text" name="email" />
		  <input type="hidden" name="id" />
		</form>
		
	</body>
	<script>
		// 匹配所有不可见元素,或者type为hidden的元素
		$("tr:hidden").removeAttr("style");
		
		$("input:hidden").attr("type", "text");
		
		// 匹配所有的可见元素
		$("tr:visible").attr("style", "display:none");
		
		$("input:visible").attr("type", "hidden")
	</script>
</html>

案例代码六:属性选择器

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>属性选择器</title>
		<script type="text/javascript" src="../js/jquery.min.js"></script>
	</head>
	<body>
		<div>
		  <p>Hello!</p>
		</div>
		<div id="test2">World</div>
		
		<input type="checkbox" name="checkbox1" /><input type="checkbox" name="checkbox2" /><input type="checkbox" name="checkbox3" />Rap
		
		<input type="checkbox" name="man-news" /><input type="checkbox" name="milkman" /><input type="checkbox" name="letterman2" /><input type="checkbox" name="newmilk" /></body>
	<script>
		// 匹配包含给定属性的元素。
		console.log($("div[id]").html());
		
		// 匹配给定的属性是某个特定值的元素
		$("input[name='checkbox1']").attr("checked", "true");
		
		// 匹配给定的属性不是某个特定值的元素
		$("input[name!='checkbox1']").attr("checked", "true");
		
		// 匹配给定的属性是以某些值开始的元素
		$("input[name^=checkbox]").removeAttr("checked");
		
		// 匹配给定的属性是以某些值结尾的元素
		$("input[name$=2]").attr("checked", "true");
		
		// 匹配给定的属性是以包含某些值的元素
		$("input[name*='man']").attr("checked", "true");
		
		// 复合属性选择器,需要同时满足多个条件时使用。
		$("input[name$=2][name*='man']").attr("checked", "true");
	</script>
</html>

案例代码七:子元素选择器

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>子元素选择器</title>
		<script type="text/javascript" src="../js/jquery.min.js"></script>
	</head>
	<body>
		<ul>
		  <li>John</li>
		  <li>Amy</li>
		  <li>Brandon</li>
		</ul>
		<ul>
		  <li>Glen</li>
		  <li>Heat</li>
		  <li>Jimmy</li>
		</ul>
		<ul>
		  <li>Arthur</li>
		</ul>
	</body>
	<script>
		// 匹配所给选择器( :之前的选择器)的第一个子元素
		console.log($("ul li:first-child").text());
		
		// 使用each进行遍历
		$("ul li:first-child").each(function() {
			console.log($(this).text())
		})
		
		// 匹配最后一个子元素
		console.log($("ul li:last-child").text());
		
		// 如果某个元素是父元素中唯一的子元素,那将会被匹配
		console.log($("ul li:only-child").text());
	</script>
</html>

案例代码八:表单选择器

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>表单选择器</title>
		<script type="text/javascript" src="../js/jquery.min.js"></script>
	</head>
	<body>
		<input type="button" value="Input Button" />
		<input type="checkbox" />

		<input type="file" />
		<input type="hidden" />
		<input type="image" />

		<input type="password" />
		<input type="radio" />
		<input type="reset" />

		<input type="submit" />
		<input type="text" />
		<select>
			<option>Option</option>
		</select>

		<textarea></textarea>
		<button>Button</button>
	</body>
	<script>
		console.log($("input").length);
		
		// 匹配所有 input, textarea, select 和 button 元素
		console.log($(":input").length);
		
		// 匹配所有 text 元素
		console.log($(":text").length);
	</script>
</html>

案例代码九:表单对象属性选择器

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>表单对象属性选择器</title>
		<script type="text/javascript" src="../js/jquery.min.js"></script>
	</head>
	<body>
		<form>
			<input name="email" disabled="disabled" />
			<input name="id" />
			<input type="checkbox" name="cb1" checked="checked"/><input type="checkbox" name="cb2"/><input type="checkbox" name="cb3" checked="checked"/>Rap
			
			<select>
			  <option value="1"></option>
			  <option value="2" selected="selected"></option>
			  <option value="3">Rap</option>
			</select>
		</form>
	</body>
	<script>
		// 匹配所有可用元素
		console.log($("input:enabled").length);

		// 匹配所有不可用元素
		console.log($("input:disabled").length);
		
		// 匹配所有选中的被选中元素(复选框、单选框等,select中的option),对于select元素来说,获取选中推荐使用 :selected
		console.log($("input:checked").length);
		
		// 匹配所有选中的option元素
		console.log($("select option:selected").length);
	</script>
</html>

jQuery 常用 Method-API

对web页面(HTML/JSP/XML)中的任何标签,属性,内容进行增删改查

DOM 简述与分类
(A)DOM是一种W3C官方标准规则,可访问任何标签语言的页面(HTML/JSP/XML)
(B)DOM是跨平台(window/linux/unix),跨语言(javascript/java),跨浏览器(ie/firefox/Chrome)的标准规则	
(C)我们只需要按照DOM标准规则,针对主流浏览器(ie/firefox/Chrome)编程
(D)JS/jQuery按照DOM的标准规则,既可以操作HTML/JSP,也能操作CSS
(E)DOM标准规则不是JS的专属,其它语言,也能适用,例如:VBScript,Java语言等
DOM 标准规则下的 jQuery 常用 API
each():是jQuery中专用于迭代数组的方法,参数为一个处理函数,this表示当前需要迭代的js对象
append():追加到父元素之后
prepend():追加到父元素之前
after():追加到兄弟元素之后
before():追加到兄弟元素之前 
attr(name):获取属性值
attr(name,value):给符合条件的标签添加key-value属性对 $("<div id='xxID'>HTML代码</div>"):创建元素,属性,文本    
remove():删除自已及其后代节点  
val():获取value属性的值
val(""):设置value属性值为""空串,相当于清空
text():获取HTML或XML标签之间的值
text(""):设置HTML或XML标签之间的值为""空串 
clone():只复制样式,不复制行为
clone(true):既复制样式,又复制行为
replaceWith():替代原来的节点
removeAttr():删除已存在的属性
addClass():增加已存在的样式
removeClass():删除已存在的样式
hasClass():判断标签是否有指定的样式,true表示有样式,false表示无样式
toggleClass():如果标签有样式就删除,否则增加样式
offset():获取对象的left和top坐标
offset({top:100,left:200}):将对象直接定位到指定的left和top坐标
width():获取对象的宽
width(300):设置对象的宽
height():获取对象的高
height(500):设置对象的高
children():只查询子节点,不含后代节点
next():下一下兄弟节点
prev():上一下兄弟节点
siblings():上下兄弟节点
show():显示对象
hide():隐藏对象
fadeIn():淡入显示对象
fadeOut():淡出隐藏对象
slideUp():向上滑动
slideDown():向下滑动
slideToggle():上下切换滑动,速度快点
find("选择器"):查询指定的节点和多重each()迭代

案例代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Method_API</title>
		<script type="text/javascript" src="../js/jquery.min.js"></script>
	</head>
	<body>
	</body>
	<script>
		var array = ['易烊千玺', '迪丽热巴', '欧阳娜娜'];
		
		var arr = $(array);
		
		// 以每一个匹配的元素作为上下文来执行一个函数
		arr.each(function () {
			console.log(this.toString())
		})
	</script>
</html>

jQuery 常用 Event-API

对web页面(HTML/JSP)进行事件触发,完成特殊效果的处理

window.onload:在浏览器加载web页面时触发,可以写多次onload事件,但后者覆盖前者
ready:在浏览器加载web页面时触发,可以写多次ready事件,不会后者覆盖前者,依次从上向下执行,我们常用$(函数)简化
ready和onload同时存在时,二者都会触发执行,ready快于onload
change:当内容改变时触发
focus:焦点获取
select:选中所有的文本值
keyup/keydown/keypress:演示在IE和Firefox中获取event对象的不同
mousemove:在指定区域中不断移动触发
mouseover:鼠标移入时触发
mouseout:鼠标移出时触发
submit:在提交表单时触发,true表示提交到后台,false表示不提交到后台
click:单击触发
dblclick:双击触发
blur:失去焦点
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值