appendChild()插入节点需注意的问题
2024-08-24 20:53:17
第一点:首先appendChild插入节点时返回的值是插入的节点本身,另外必须要找到所要插入的父节点:
var returnNode = parentNode.appendChild(childNode);
console.log(returnNote===childNode);//true
第二点:appendChild所要插入的新节点如果存在于文档流中,那么此时并不会把心节点复制然后插入到这个父节点下,而是把这个新节点从源文档流中移动到所要插入的父节点下:
<div id="test">
<div>adscasdjk</div>
<div id="a">adscasdjk</div>
</div>
<script type="text/javascript">
var t = document.getElementById("test");
var a = document.getElementById('a');
//var tt = a.cloneNode(true);
t.appendChild(a);
</script>
这样有js代码和没有js代码的表现是一样的,但是在fireBug下可以清楚地发现有id的div移动到了没有id的那个div前面去了;也即是id='a'的div只是移动到了父节点下而已。
<div id="test">
<div>adscasdjk</div>
<div id="a">adscasdjk</div>
</div>
<script type="text/javascript">
var t = document.getElementById("test");
var a = document.getElementById('a');
var tt = a.cloneNode(true);
t.appendChild(tt);
</script>
解决的方法就是将所要插入的节点clone一下在插入到相应位置,这样就可以达到预期的效果了
最新文章
- poj 3984:迷宫问题(广搜,入门题)
- TP中二维数组的遍历输出
- 浅谈.NET Micro Framework性能优化 转自 软件中国
- [Mac][phpMyAdmin] [2002] No such file or directory
- [MVC4-基礎] 連動DropDownList - 使用jQuery、JSON
- Python Base64转码解码
- php+redis实现多台服务器内网存储session并读取
- java HTTP请求 DefaultHttpClient is deprecated
- 比较全的JavaScript倒计时脚本
- hdu_1030(数学题+找规律)
- selenium+java破解极验滑动验证码的示例代码
- es6之字符串添加的东西
- JDK设计模式之——装饰者模式
- ES6删除对象中的某个元素
- Linux实时查询GPU使用命令
- Trident继承kafka
- ASP.NET MVC:4 Ways To Prevent Duplicate Form Submission(转载)
- Delphi XE5 for Android (四)
- 关于 未在本地计算机上注册“VFPOLEDB.1” 的解决方案
- 深海划水队项目----七天冲刺之day3