js中appendChild()方法

     appendChild(Node)这个方法一般是在指定元素节点的最后一个子节点之后添加节点,但如果Node是页面中的DOM对象,那么就不是添加节点了,就是直接Move节点。

     ① 创建原来没有的节点

<body>
	<ul>
		<li>苹果</li>
		<li>香蕉</li>
		<li>橘子</li>
	</ul>
</body>
<script>
	window.onload = function(){
		//定义一个快捷方式
		function $(name){
			return document.getElementsByTagName(name);
		}
		//创建一个新的节点
		var li = document.createElement("li");
		li.innerHTML="柚子";
		$('ul')[0].appendChild(li);
	}
</script>       

    得到的结果:

        

     ② 添加的节点是页面中原有的DOM对象

<body>
	<ul>
		<li>苹果</li>
		<li>香蕉</li>
		<li>橘子</li>
	</ul>
</body>
<script>
	window.onload = function(){
		//定义一个快捷方式
		function $(name){
			return document.getElementsByTagName(name);
		}
		//创建一个新的节点
		var li = $('ul')[0].children[0];
		$('ul')[0].appendChild(li);
	}
</script>
  得到的结果

         

如果要添加的节点是网页中的DOM对象,这时直接用appendChild()方法会移动NODE节点,因此解决这种问题的办法是

      1.先使用cloneNode();克隆一下节点

      2.之后使用appendChild();


下面的代码是博主做的一个简易的显示界面,点击左边的小图标右边会显示大图。写这段代码的时候就遇到这个问题,因此把这个问题写下来希望自己下次能够细心一点也希望能帮助到有需要的人。

 

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>图片显示</title>
	<style>
		ul{
			list-style: none;
			padding: 0;
            margin: 0;
		}
		.left{
			float: left;
		    margin-left: 50px;
		    margin-top: 20px;
		}
		.left img{
			width: 200px;
		}
		.show{
			float: left;
			border: 1px solid #ccc;
		    width: 600px;
		    height: 400px;
		    margin-left: 70px;
		    margin-top: 185px;
		}
	</style>
</head>
<body>
	<div class="wrap">
		<div class="left">
			<ul>
				<li><img src="image/1.jpg" alt="图片1"></li>
				<li><img src="image/2.jpg" alt="图片2"></li>
				<li><img src="image/3.jpg" alt="图片3"></li>
				<li><img src="image/4.jpg" alt="图片4"></li>
				<li><img src="image/5.jpg" alt="图片5"></li>
			</ul>
		</div>
		<div class="show">
			
		</div>
	</div>
</body>
<script>
	window.onload = function(){
		function $(name){
			return document.getElementsByClassName(name)[0];
		}
		var uls = $('left').children;
		var lis = uls[0].children;
		var length = lis.length;
		var show  = $('show');
		var ul = document.createElement('ul');
		show.append(ul);
		var sul = show.children;
	    sul[0].className = 'sul';
		for(var i=0;i<length;i++){
			lis[i].onclick = function(){
				$('sul').innerHTML = '';
				var that = this.cloneNode(true);
				$('sul').append(that);
			}
		}
	}
</script>
</html>


        

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值