(16)JQuery - 克隆和替换节点

复制节点
clone(): 克隆匹配的 DOM 元素, 返回值为克隆后的副本. 但此时复制的新节点不具有任何行为. clone(true): 复制元素的同时也复制元素中的的事件


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Untitled Document</title>
		
		<script type="text/javascript" src="scripts/jquery-1.7.2.js"></script>
		<script type="text/javascript">
			
			//测试使用 jQuery clone 方法: 复制节点
			$(function(){
				
				$("li").click(function(){
					alert($(this).text());
				});
				
				//复制 #bj 节点, 并添加到 #rl 节点的后面
				/*
				1. clone 节点时需要注意克隆后的节点的 id 属性. 若原节点有 id
				属性, 则克隆后, 会出现在一个文档中有两个 id 相同的节点的情况.
				2. clone(true): 在克隆节点的同时, 克隆节点包含的事件. 
				*/
				$("#bj").clone(true)
				        .attr("id", "bj2")
				        .insertAfter($("#rl"));
				
			})
			
		
		</script>
		
	</head>
	<body>
		<p>你喜欢哪个城市?</p>
		<ul id="city">
			<li id="bj" name="BeiJing">北京</li>
			<li>上海</li>
			<li id="dj">东京</li>
			<li id="se">首尔</li>
		</ul>
		
		<br><br>
		<p>你喜欢哪款单机游戏?</p>
		<ul id="game">
			<li id="rl">红警</li>
			<li>实况</li>
			<li>极品飞车</li>
			<li>魔兽</li>
		</ul>
		
		<br><br>
		gender: 
			<input type="radio" name="gender" value="male"/>Male
			<input type="radio" name="gender" value="female"/>Female
	
		<br><br>
		name: <input type="text" name="username" value="atguigu"/>
		
	</body>
</html>	

替换节点
注意:用$ temp = XX.replaceAll()或者 XX.replaceWith()方法
temp接收的值都是XX

在这里插入图片描述 显示的硅谷
在这里插入图片描述 显示的上海



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Untitled Document</title>
		
		<script type="text/javascript" src="scripts/jquery-1.7.2.js"></script>
		<script type="text/javascript">
			
			//测试使用 jQuery replaceWith (replaceAll) 方法: 替换节点
			/*
			1. replaceWith , replaceAll 一对方法, 可以完成一件事. 就是主语宾语
			哪个在前面的问题. 
			2. 以上的两个方法还有移动节点的功能
			3. 节点互换需要先克隆节点. 
			4. var $rl = $("#rl").replaceWith($bj2);
			*/
			$(function(){
				
				//1. 创建一个 <li>尚硅谷</li> 节点, 替换 #city 的最后一个 li 子节点
				var $temp1 = $("<li>硅谷</li>").replaceAll("#city :last");
				//2. 创建一个 <li>[尚硅谷]</li> 节点, 
				//替换 #city 的第二个 li 子节点
//				$("<li>[硅谷]</li>").replaceAll("#city li:eq(1)");
			
				var $temp2 = $("#city li:eq(1)").replaceWith("<li>123</li>");
				//3. 互换以下两个节点: #rl 和 #bj. 还有移动的功能.
				//$("#bj").replaceWith($("#rl"));
				
				//3. 互换以下两个节点: #rl 和 #bj. 还有移动的功能.
				//$("#bj").replaceWith($("#rl"));
				
				//节点互换需要先克隆节点. 
				var $bj2 = $("#bj").clone(true);
				var $temp = $("#rl").replaceWith($bj2);
				alert($temp.text());   //红警
				$temp.replaceAll("#bj");
				//节点互换需要先克隆节点. 
			})
			
		
		</script>
		
	</head>
	<body>
		<p>你喜欢哪个城市?</p>
		<ul id="city">
			<li id="bj" name="BeiJing">北京</li>
			<li>上海</li>
			<li id="dj">东京</li>
			<li id="se">首尔</li>
		</ul>
		
		<br><br>
		<p>你喜欢哪款单机游戏?</p>
		<ul id="game">
			<li id="rl">红警</li>
			<li>实况</li>
			<li>极品飞车</li>
			<li>魔兽</li>
		</ul>
		
		<br><br>
		gender: 
			<input type="radio" name="gender" value="male"/>Male
			<input type="radio" name="gender" value="female"/>Female
	
		<br><br>
		name: <input type="text" name="username" value="atguigu"/>
		
	</body>
</html>	

猜你喜欢

转载自blog.csdn.net/Yuz_99/article/details/84963469