jQuery入门之DOM操作

属性操作

  1. attr(name | key,value):设置或返回被选元素的属性值。
  2. removeAttr(name):删除name属性。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery-1.8.3.js" ></script>
		<script>
			//需要使用onload
			function t(){
				$("#bd").attr("href","http://www.baidu.com");
			}
			
			//不需要使用onload
			$(document).ready(function(){
				$("#bd").attr("href","http://www.baidu.com");
			});
			
			//上面的简写形式
			$(function(){
				$("#bd").attr("href","http://www.baidu.com");
			});
		</script>
	</head>
	<body>
		<div id="title">zzu</div>
		<a id="bd" href="http://www.baidu.com">百度</a>
		<script>
			var id = $("#title").attr("id");//获取标签的id属性值
			console.log(id);
			$("#bd").removeAttr("href");//移除标签某个属性
		</script>
	</body>
</html>

注:
在jQuery中,可以使用

$(document).ready(function(){
});

来取代onload操作,同时它也可以简写为:

$(function(){
});

class属性操作

  1. addClass(className):为匹配元素设置class属性的属性值,多个属性值使用空格间隔。
  2. removeClass(className):删除匹配元素class属性的属性值,多个属性值使用空格间隔。
  3. toggleClass(className):切换样式——如果类名存在则删除它,如果类名不存在则添加它。
  4. hasClass():判断元素中是否含有某个 class,如果有,则返回 true;否则返回 false。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery-1.8.3.js" ></script>
	</head>
	<style>
		.zzu{
			background-color: red;
		}
	</style>
	<body>
		<div id="title">zzu</div>
		<script>
			$("#title").addClass("zzu");
			$("#title").removeClass("zzu");
			$("#title").css("font-size","30px")
			
			$("#title").toggleClass("zzu");
			console.log($("#title").hasClass("zzu"));
		</script>
	</body>
</html>

HTML代码/文本

  1. html([val]):传入val参数可以设置匹配元素的html内容;无参则获取匹配元素的html内容。(对应于JavaScript中的innerHTML)
  2. text([val]):传入val参数可以设置匹配元素的文本内容;无参则获取的结果是匹配元素包含的文本内容组合起来的文本。(对应于JavaScript中的innerText)
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery-1.8.3.js" ></script>
	</head>
	<body>
		<span id="time"></span>
		<script>
			document.getElementById("time").innerHTML="<b>2020-7-19</b>";//设置HTML内容
			document.getElementById("time").innerText="<b>2020-7-19</b>";//设置文本内容
			
			$("#time").html("<b>2020-7-19</b>");//对应于innerHTML
			$("#time").text("<b>2020-7-19</b>");//对应于innerText
		</script>
	</body>
</html>

val([val]): 获取或设置匹配元素当前值;传入val参数用于选中单选、复选、下拉列表,注意:必须为JavaScript数组。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery-1.8.3.js" ></script>
	</head>
	<body>
		//文本框
		<input type="text" name="user_name" value="admin" />
		//单选
		<input type="radio" name="sex" value="0" /><input type="radio" name="sex" value="1" />女
		//多选
		<input type="checkbox" name="hobby" value="0" checked="checked"/>篮球
		<input type="checkbox" name="hobby" value="1" />羽毛球
		<input type="checkbox" name="hobby" value="2" checked="checked"/>乒乓球
		//下拉列表
		<select id="province" >
			<option value="">--请选择--</option>
			<option value="001">河南省</option>
			<option value="002">河北省</option>
			<option value="003">湖北省</option>
		</select>
		<script>
			//获取文本框值
			var value = $("[name='user_name']").val();
			console.log(value);
			
			//设置默认选择项
			//单选
			$("[name='sex']").val(["1"]);//默认选择value="1"的项
			//多选
			$("[name='hobby']").val(["0","2"]);//默认选择value="0"和value="2"的项
			//下拉列表
			$("#province").val(["001"]);//默认选择value="001"的项
		</script>
	</body>
</html>

CSS

css(name | name,value):返回或设置元素样式。
name:获取css属性值。
在这里插入图片描述
name,value:设置css属性值。
在这里插入图片描述

位置

scrollTop(val):返回或设置匹配元素相对滚动条顶部的偏移val个像素,常用来实现“返回顶端”。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery-1.8.3.js" ></script>
	</head>
	<body style="width: 10000px;height: 10000px;">
	
		<div onclick="goTop()" style="width: 100px;height: 100px;background-color: red;position: fixed;right: 0;bottom: 0;cursor: pointer;">
			回到顶部
		</div>
		
		<script>
			function goTop(){
				$(document).scrollTop(0);
			}
		</script>
	</body>
</html>

过滤DOM节点

  1. first() :获取第一个元素;
  2. last() :获取最后个元素;
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery-1.8.3.js" ></script>
	</head>
	<body>
		<span>郑州大学</span>
		<div>zzu</div>
		<div>河南</div>
		<div>郑州</div>
		<script>
			var first = $("div").first();//获取的是第一个jQuery对象
			console.log(first);
			
			var last = $("div").last();
			console.log(last[0]);//转换为JavaScript对象
		</script>
	</body>
</html>

在这里插入图片描述

查找DOM节点

  1. find(val) :搜索所有与指定表达式(val可以是选择器、jQuery对象或DOM元素)匹配的元素。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery-1.8.3.js" ></script>
	</head>
	<body>
		<span>郑州大学</span>
		<div>zzu</div>
		<div>河南</div>
		<div>郑州</div>
		<script>
			//在html中找到所有div标签
			$("html").find("div").each(function(){
				console.log(this);//JavaScript对象
			});
		</script>
	</body>
</html>

在这里插入图片描述

  1. parent() :取得一个包含着所有匹配元素的唯一父元素的元素集合。
  2. parents() :取得一个包含着所有匹配元素的祖先元素的元素集合(不包含根元素)。
  3. children() :获取匹配元素的所有子元素组成的集合;该方法只考虑子元素而不考虑任何后代元素。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery-1.8.3.js" ></script>
	</head>
	<body>
		<span>郑州大学</span>
		<div>zzu</div>
		<div>河南</div>
		<div>郑州</div>
		<script>
			
			var obj = $("title").parent();//返回父元素
			console.log(obj);//jQuery对象
			var obj = $("title").parents();//返回父元素和祖先元素
			console.log(obj);//jQuery对象
			
			$("body").children().each(function(){//返回所有的子元素
				console.log(this);//JavaScript对象
			});
		</script>
	</body>
</html>

在这里插入图片描述
4. next() :取得一个包含匹配的元素集合中每一个元素紧邻的后面同辈元素的元素集合。
5. nextAll():查找当前元素之后所有的同辈元素。
6. prev():取得一个包含匹配的元素集合中每一个元素紧邻的前一个同辈元素的元素集合。
7. prevAll():查找当前元素之前所有的同辈元素。
8. siblings():取得匹配元素前后所有的同辈元素。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery-1.8.3.js" ></script>
	</head>
	<body>
		<span>郑州大学</span>
		<div>zzu</div>
		<div>河南</div>
		<div>郑州</div>
		<script>
			$("span").next().each(function(){
				console.log(this);
			});
			
			$("span").nextAll().each(function(){
				console.log(this);
			});
			
			$("script").prev().each(function(){
				console.log(this);
			});
			
			$("script").prevAll().each(function(){
				console.log(this);
			});
		</script>
	</body>
</html>

在这里插入图片描述

复制节点

clone([true | false]) :clone方法传入false或不传入值,则不克隆该元素的事件;若传入true,则复制元素的同时也复制元素中的的事件。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery-1.8.3.js" ></script>
	</head>
	<body>
		<a href="http://www.baidu.com" target="_blank" >百度</a>
		
		<div style="border: 1px solid red;"></div>

		<script>
			$("a").bind("click",function(){
				console.log("hello");
			});
			
			var obj = $("a").clone();
			//var obj = $("a").clone(true);
			//clone()函数中若传入参数true,则会同时复制该元素中的事件,但如果元素事件是用onclick绑定的,则不传true也可以复制该事件
			console.log(obj);
			
			$("div").append(obj);//将复制后的节点插入到div中
		</script>
	</body>
</html>

替换节点

  1. replaceWith(content) :将所有匹配的元素替换成指定的HTML或DOM元素(content)。
  2. replaceAll(selector):用匹配的元素替换掉所有 selector匹配到的元素。

注意: 替换前, 已绑定事件的元素,替换后原先事件会与元素一起消失。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery-1.8.3.js" ></script>
	</head>
	<body>
		<span>zzu</span><span>郑州</span>
		<script>
			$("span").replaceWith("<i>河南省</i>");
		</script>
	</body>
</html>

删除DOM节点

  1. empty() :删除匹配的元素集合中所有的子节点,不包括自身。
  2. remove() :删除匹配元素,包括自身。
  3. detach() :删除所有匹配的元素,与remove()不同,detach删除元素所绑定的事件、附加的数据等都会保留下来。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery-1.8.3.js" ></script>
	</head>
	<body>
		<a href="http://www.baidu.com" target="_blank" >百度</a>
		
		<div style="border: 1px solid red;"></div>
		
		<span>zzu</span><span>郑州</span>
		<script>		
			$("div").empty();//仅将元素内容清空
			$("div").remove();//直接将该元素删除
		</script>
	</body>
</html>

页面载入

ready(function):HTML文档加载完成之后,浏览器执行function函数,可以简写为$():
在这里插入图片描述
注意:
ready(function)方法等效于window.onload,但是后者没有简写并且一个HTML文件中不允许出现多次。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值