jQuery基础02

部分内容选择器

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>内容选择器</title>
		<style>
			div{
				width: 50px;
				height: 100px;
				background-color: red;
				margin-top: 5px;
			}
		</style>
		<script src="../lib/jquery.js"></script>
		<script>
			$(function(){
				//:contains(texr)
				//:empty
				//:has(selector)
				//:parent
				
				//:empty作用:找到即没有文本内容也没有子元素的指定元素
				var $div = $("div:empty");
				console.log($div);//找到第一个div
				
				//:parent作用:找到有文本内容或有子元素的指定元素
				var $div = $("div:parent");
				console.log($div);//除了第一个div,其他全找到
				
				//:contains(texr)作用:找到包含指定文本内容的指定元素
				var $div = $("div:contains('我是div')");
				console.log($div);//找到第二个div
				
				//:has(selector)作用:找到包含指定子元素的指定元素
				var $div = $("div:has('span')");
				console.log($div);//找到有span的div
			});
		</script>
	</head>
	<body>
		<div></div>
		<div>我是div</div>
		<div>她是div</div>
		<div><span></span></div>
		<div><p></p></div>
	</body>
</html>

属性和属性节点

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>属性和属性节点(理解)</title>
		<script src="../lib/jquery.js"></script>
		<script>
			/* 
				1.什么是属性
					对象身上保存的变量就是属性
					
				2.如何操作属性
					对象.属性名称 = 值;
					对象.属性名称;
					
					对象["属性名称"] = 值
					对象["属性名称"];
					
				3.什么是属性节点
					<span name = "it666"></span>
					在编写HTML代码时,在HTML标签中添加的属性就是属性节点
					在浏览器中找到span这个DOM元素之后,展开看到的都是属性
					在attributes属性中保存的所有内容都是属性节点
					
				4.如何操作属性节点
					DOM元素.setAttribute("属性名称","值");
					DOM元素.getAttribute("属性名称");
					
				5属性和属性节点的区别
					任何对象都有属性,但是只有DOM对象才有属性节点
			 */
			$(function(){
				
				function Person(){
					
				}
				var p = new Person();
				//p.name = "cqd";
				//console.log(p.name);//cqd
				p["name"] = "CQD";
				console.log(p["name"]);//CQD
				
				var span = document.getElementsByTagName("span")[0];
				span.setAttribute("name","cze");
				console.log(span.getAttribute("name"));
			});
		</script>
	</head>
	<body>
		<span name = "it666"></span>
	</body>
</html>

attr方法

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>attr方法</title>
		<script src="../lib/jquery.js"></script>
		<script>
			$(function(){
				/* 
					1.attr(name|pro|key,val|fn)
					作用:获取或者设置属性节点的值
					可以传递一个参数,也可以传递两个参数
					如果传递一个参数,代表获取属性节点的值
					如果传递两个参数,代表设置属性节点的值
					注意:
						1.如果是获取,无论找到多少个元素,都只会返回第一个元素指定的属性节点的值
						2.如果是设置,找到多少个元素就会设置多少个元素
						3.如果是设置,设置的属性节点不存在,那么系统会自动新增
					
					2.removeAttr(name)
					删除属性节点
					注意:会删除所有找到的元素指定的属性节点
				 */
				
				//console.log($("span").attr("class"));
				//$("span").attr("class","box");
				//$("span").attr("abc","box");
				
				$("span").removeAttr("class name");
			});
		</script>
	</head>
	<body>
		<span class="span1" name="it666"></span>
		<span class="span2" name="it777"></span>
	</body>
</html>

prop方法

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>prop方法</title>
		<script src="../lib/jquery.js"></script>
		<script>
			$(function(){
				/* 
					1.prop方法
						特点和attr方法一致
						
					2.removeProp方法
						特点和removeAttr方法一致
				 */	
				$("span").eq(0).prop("demo","it666");
				$("span").eq(1).prop("demo","cqd");
				$("span").prop("demo");
				console.log($("span").prop("demo"));//it666
				
				$("span").removeProp("demo");
				
				/* 
					注意:prop方法不仅能够操作属性,还能够操作属性节点
					
					官方推荐在操作属性节点时,具有true和false两个属性的属性节点,如checked,selected或者disabled使用prop(),其他的使用attr()
				 */
				console.log($("span").prop("class"));//span1
				$("span").prop("class","box");
				
				console.log($("input").prop("checked"));//打勾返回true,不打返回false
				console.log($("input").attr("checked"));//打勾返回checked,不打返回undefined
			});
		</script>
	</head>
	<body>
		<span class="span1" name="it666"></span>
		<span class="span2" name="it777"></span>
		<input type="checkbox">
	</body>
</html>

练习

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="../lib/jquery.js"></script>
		<script>
			$(function(){
				//1.给按钮添加点击事件
				var btn = document.getElementsByTagName("button")[0];
				btn.onclick = function(){
					//2.获取输入框输入的内容
					var input = document.getElementsByTagName("input")[0];
					var test = input.value;
					//3.修改img的src属性节点的值
					$("img").attr("src",test);
					//$("img").prop("src",text);
				}
				
			});
		</script>
	</head>
	<body>
		<input type="text"/>
		<button>切换图片</button><br><!-- 输入框输入另一张图片的地址,点击按钮会切换图片 -->
		<img src="https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png">
	</body>
</html>

操作类相关的方法

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>操作类相关的方法</title>
		<style>
			*{
				margin: 0;
				padding: 0;
			}
			.class1{
				width: 100px;
				height: 100px;
				background: red;
			}
			.class2{
				border: 10px solid #000;
			}
		</style>	
		<script src="lib/jquery.js"></script>
		<script>
			$(function(){
				/* 
					1.addClass(class|fn)
					作用:添加一个类
					如果要添加多个,多个类之间用空格隔开即可
					
					2.removeClass([class|fn])
					作用:删除一个类
					如果要删除多个,多个类之间用空格隔开即可
					
					3.toggleClass(class|fn[,sw])
					作用:切换类
					有就删除,没有就添加
				 */
				var btns = document.getElementsByTagName("button");
				btns[0].onclick = function(){
					//$("div").addClass("class1");
					$("div").addClass("class1 class2");
				}
				btns[1].onclick = function(){
					//$("div").removeClass("class2");
					$("div").removeClass("class1 class2");
				}
				btns[2].onclick = function(){
					$("div").toggleClass("class1 class2");
				}
			});
		</script>
	</head>
	<body>
		<button>添加类</button>
		<button>删除类</button>
		<button>切换类</button>
		<div></div>
	</body>
</html>

文本值相关的操作方法

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>文本值相关的操作方法</title>
		<style>
			*{
				margin: 0;
				padding: 0;
			}
			div{
				width: 100px;
				height: 100px;
				border: 1px solid #000;
			}
		</style>
		<script src="../lib/jquery.js"></script>
		<script>
			$(function(){
				/* 
					1.html([val|fn])
					和原生js中的innerHTML一模一样
					
					2.text([val|fn])
					和原生js中的innerText一模一样
					
					3.val([val|fn|arr])
				 */
				var btns = document.getElementsByTagName("button");
				btns[0].onclick = function(){
					$("div").html("<p>我是段落<span>我是span</span></p>");
				}
				btns[1].onclick = function(){
					console.log($("div").html());
				}
				btns[2].onclick = function(){
					$("div").text("<p>我是段落<span>我是span</span></p>");
				}
				btns[3].onclick = function(){
					console.log($("div").text());
				}
				btns[4].onclick = function(){
					$("input").val("请输入内容");
				}
				btns[5].onclick = function(){
					console.log($("input").val());
				}
			});
		</script>
	</head>
	<body>
		<button>设置html</button>
		<button>获取html</button>
		<button>设置text</button>
		<button>获取text</button>
		<button>设置value</button>
		<button>获取value</button>
		<div></div>
		<input type="text">
	</body>
</html>

操作样式方法

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="../lib/jquery.js"></script>
		<script>
			$(function(){
				//1.逐个设置
				$("div").css("width","100px");
				$("div").css("height","100px");
				$("div").css("background","red");
				
				//2.链式设置
				//注意:链式操作如果大于3步,建议分开
				$("div").css("width","100px").css("height","100px").css("background","blue");
				
				//3.批量设置
				$("div").css({
					width: "100px",
					height: "100px",
					background: "yellow"
				})
				
				//获取css样式值
				console.log($("div").css("background"));
			});
		</script>
	</head>
	<body>
		<div></div>
	</body>
</html>

操作尺寸和位置

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>尺寸和位置操作</title>
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
			}
			.father{
				width: 200px;
				height: 200px;
				background: red;
				border: 50px solid #000;
				margin-left: 50px;
				position: relative;
			}
			.son{
				width: 100px;
				height: 100px;
				background: blue;
				position: absolute;
				left: 50px;
				top: 50px;
			}
		</style>
		<script src="../lib/jquery.js"></script>
		<script>
			$(function(){
				var btns = document.getElementsByTagName("button");
				//监听获取
				btns[0].onclick = function(){
					//获取元素的宽度
					console.log($(".father").width());//200
					 
					//offset([coordinates])
					//作用:获取元素距离窗口的偏移位
					console.log($(".son").offset().left);
					
					//position()
					//作用:获取元素距离定位元素的偏移位
					//注意:position方法只能获取不能设置
					console.log($(".son").position().left);
				}
				//监听设置
				btns[1].onclick = function(){
					//设置元素的宽度
					//$(".father").width("500px");
					
					$(".son").offset({
						left:10
					});
				}
			});
		</script>
	</head>
	<body>
		<div class="father">
			<div class="son"></div>
		</div>
		<button>获取</button>
		<button>设置</button>
	</body>
</html>

scrollTop方法

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			*{
				margin: 0;
				padding: 0;
			}
			.scroll{
				width: 100px;
				height: 200px;
				border: 1px solid #000;
				overflow: auto;
			}
		</style>
		<script src="../lib/jquery.js"></script>
		<script>
			$(function(){
				var btns = document.getElementsByTagName("button");
				//获取监听
				btns[0].onclick = function(){
					//获取滚动的偏移位
					//console.log($(".scroll").scrollTop());
					//获取网页滚动的偏移位
					//console.log($("html").scrollTop());
					//注意:为了保证浏览器的兼容,获取网页滚动的偏移位,需要按照如下写法
					console.log($("body").scrollTop()+$("html").scrollTop());
				}
				btns[1].onclick = function(){
					//设置滚动的偏移位
					//$(".scroll").scrollTop(300);
					//设置网页滚动的偏移位
					//注意:为了保证浏览器的兼容,设置网页滚动的偏移位,需要按照如下写法
					$("html,body").scrollTop(500);
				}
			});
		</script>
	</head>
	<body>
		<div class="scroll">《鬼谷八荒》这游戏太魔性了…………老夫16岁巧遇机缘,踏长生。他人一心筑基,我8年寻材,终以天地人三道之中的最强天道筑基。
		之后突飞猛进,4年之间用雷泽四种天材地宝终成完美结晶境。随后杀华康,斩雷神,跨过雷泽,进华封州,才知金丹分五品。又用8年时间,入剑宗,
		集齐六种灵珠,五种天材成就一品金丹。入境是巅峰,结晶视如狗。然而回首观瞧才知,历经20载,却也只是刚刚迈进门槛。不说了,明天具灵境冲元婴境。
		</div>
		<button>获取</button>
		<button>设置</button>
		<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
		<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
	</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值