jQuery之节点和节点属性操作

利用jQ最常见的功能就是选择器,节点操作和节点属性操作,选择器在前面有小结过,这一篇来看看节点和节点属性。

1.操作节点

最常见的操作节点的函数有如下几个:

 a.append(b):将节点b添加到指定的节点a里面,b作为原节点的子节点
 a.appendTo(b):将a节点作为子节点,添加到b节点里面
 a.after(b):将b节点添加到a节点后面,a和b没有包含关系
a.before(b):将b节点添加到a节点前面,a和b没有包含关系

a.remove(select);a是一个节点集合,从节点集合中删除用select选择出来的节点

下面通过具体的DEMO来说明

1)demo1,之前用原生js写过两个select联动的例子,用jQ的方式也可以写,而且更加简单。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
	<script type="text/javascript" src="jquery-1.8.0.js"></script>
	<script type="text/javascript">
		$(document).ready(
			function(){
				//点击获取省份按钮
				$("#testButton").click(
					function(){
						$("#province").empty();
						addOption("province","--请选择--","");
						addOption("province","海南","hn");
						addOption("province","湖北","hb");
						
					}
				)
				//切换省份
				$("#province").change(
				   function(){
						$("#city").empty();
						if($("#province").val()=="hb"){
							addOption("city","武汉","wuhan");
							addOption("city","宜昌","yichang");
						}
						if($("#province").val()=="hn"){
							addOption("city","海口","haikou");
							addOption("city","三亚","sanya");
						}
				   }
				)
				//添加option节点通用函数
				function addOption(id,text,v){
					var option="<option value="+v+">"+text+"</option>";
					$("#"+id).append(option);
				}
			} 
		)
	</script>
</head>
	<body>
		<select id="province" name="province"></select>省
		<select id="city" name="city"></select>市
		<input type="button" id="testButton" value="获取省份" />
	</body>
</html>

说明:上面的例子主要用到了a.append(b)这个函数,b是节点的html表示方法,相比于原生js,不用经过新建节点,给节点设置属性,添加节点这么多步骤,直接拼接节点的完整html表示就可以添加,相对而言更加简洁。

2)demo2,演示其他的几个函数

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
	<script type="text/javascript" src="jquery-1.8.0.js"></script>
	<script type="text/javascript">
		$(document).ready(
		function(){
			$("#testButton").click(
				function(){
					//$("#div2").after("<div id='div4' style='width:100px; height:100px; background-color:yellow'></div ");
					$("#div2").before("<div id='div4' style='width:100px; height:100px; background-color:yellow'></div ");
				}
			)
		} 
	)	
	</script>
</head>
	<body>
		<div id="div1" style="width:100px; height:100px; background-color:red"></div>
		<div id="div2" style="width:100px; height:100px; background-color:blue"></div>
		<div id="div3" style="width:100px; height:100px; background-color:green"></div>
		<br/>
		<input type="button" id="testButton" value="测试" />
	</body>
</html>

说明:demo的效果是有三个div,分别是div1,div2,div3,中间的为div2,在div2的前面后者后面添加一个新的div4,用到了

a.after(b)和a.before(b)方法。

2.操作节点属性

节点操作的主要函数有

a.attr(); 获取节点a的属性/给节点a添加属性

a.removeAttr("XX"); 移除节点a的XX属性

a.prop();用法同attr()函数相同

a.removeProp("XX") 用法同removeAtrr()函数相同

a.addClass("XX"); 给节点a添加XX样式

a.removeClass("XX") 移除a节点的XX样式

a.toggleClass("XX") 添加或者移除XX样式

a.html("XX");把XX当作html标签设置到a标签内

a.text("XX")把XX当作普通文本设置到a标签内

DEMO如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
		.style01{color:red}
		.style02{font-size:40px}
</style>
<script type="text/javascript" src="jquery-1.8.0.js"></script>
<script type="text/javascript">
	$(document).ready(
		function(){
			$("#testButton").click(
				function(){
					//a.attr();获取属性值
					//var val = $("#f").attr("style");
					//alert(val);
					//给属性设置值
					//$("#f").attr("style","color:green;font-size:30px");
					//移除属性
					//$("#f").removeAttr("style");
					
					//a.prop()的用法与attr的用法一致
					//var style=$("#f").prop("style");
					//alert(style);
					//将id="f"的元素的value属性值设置为admin
					//$("#f").prop("style",function(){return "color:green;font-size:30px"});
					//移除属性
					//$("#f").removeProp("style");
					
					//a.addClass() 添加样式
					//$("#lb1").addClass("style01 style02");
					//a.removeClass() 移除样式
					//$("#lb1").removeClass("style02");
					//$("#lb1").toggleClass("style02");
					//移除所有样式
					//$("#lb1").removeClass();
					//$("#lb1").removeAttr("class");
					
					//$("#lb2").html("<font color='blue'>哇哈哈</font>");
					//$("#lb2").text("<font color='blue'>哇哈哈</font>");
				}
			)
		} 
	)
	
	</script>
</head>
	<body>
		<font id ="f" style="color:blue;font-size:40px">大师兄</font><br/>
		<label id="lb1" class="style01 style02">二师兄</label><br/>
		<label id="lb2">三师弟</label><br/>
		<input type="button" value="测试" id="testButton"/>
	</body>
</html>

猜你喜欢

转载自blog.csdn.net/w450093854/article/details/84490376