appendChild()插入节点需注意的问题

第一点:首先appendChild插入节点时返回的值是插入的节点本身,另外必须要找到所要插入的父节点:

1 var returnNode = parentNode.appendChild(childNode);
2 console.log(returnNote===childNode);//true

第二点:appendChild所要插入的新节点如果存在于文档流中,那么此时并不会把心节点复制然后插入到这个父节点下,而是把这个新节点从源文档流中移动到所要插入的父节点下:

 1 <div id="test">
 2     <div>adscasdjk</div>
 3     <div id="a">adscasdjk</div>
 4 </div>
 5 <script type="text/javascript">
 6     var t = document.getElementById("test");
 7     var a = document.getElementById(‘a‘);
 8     //var tt = a.cloneNode(true);
 9     t.appendChild(a);
10 </script>

这样有js代码和没有js代码的表现是一样的,但是在fireBug下可以清楚地发现有id的div移动到了没有id的那个div前面去了;也即是id=‘a‘的div只是移动到了父节点下而已。

 1 <div id="test">
 2     <div>adscasdjk</div>
 3     <div id="a">adscasdjk</div>
 4 </div>
 5 <script type="text/javascript">
 6     var t = document.getElementById("test");
 7     var a = document.getElementById(‘a‘);
 8     var tt = a.cloneNode(true);
 9     t.appendChild(tt);
10 </script>

解决的方法就是将所要插入的节点clone一下在插入到相应位置,这样就可以达到预期的效果了

时间: 2024-08-01 15:44:13

appendChild()插入节点需注意的问题的相关文章

插入节点appendChild()

http://www.imooc.com/code/1698 插入节点appendChild() 在指定节点的最后一个子节点列表之后添加一个新的子节点. 语法: appendChild(newnode) 参数: newnode:指定追加的节点. 我们来看看,div标签内创建一个新的 P 标签,代码如下: 运行结果: HTML JavaScript This is a new p

js插入节点appendChild和insertBefore

首先 从定义来理解 这两个方法: appendChild() 方法:可向节点的子节点列表的末尾添加新的子节点.语法:appendChild(newchild) insertBefore() 方法:可在已有的子节点前插入一个新的子节点.语法 :insertBefore(newchild,refchild) 相同之处:插入子节点 不同之处:实现原理方法不同. appendChild方法是在父级节点中的子节点的末尾添加新的节点(相对于父级节点 来说).   insertBefore 方法 是在已有的节

JavaScript插入节点小结

JS原生API插入节点的方式大致有innerHTML.outerHTML.appendChild.insertBefore.insertAdjacentHTML.applyElement这6种. 这里总结一下各自的用法,并封装包含before.prepend.append.after.applyElement的一系列函数. 一.六种方式的用法 innerHTML:获取标签内部的HTML内容. outerHTML:获取包括目标标签在内,以及内部HTML的内容. appendChild:向目标标签末

DOM节点对象之创建和插入节点示例

示例:创建和插入节点. 1.新建节点:createElement("节点名") 2.新建文本节点:createTextNode("文本内容") 3.将文本节点添加到新建节点中:appendChild(文本节点名) 4.获取要插入节点的对象:getElementById("id名") 5.将新建节点插入到目标节点对象中:insertChild(要插入节点名,目标节点位置) <!doctype html><html><h

.Net常用技巧_操作xml文件教程(插入节点、修改、删除)

已知有一个XML文件(bookstore.xml)如下:     <?xml   version="1.0"   encoding="gb2312"?>     <bookstore>         <book   genre="fantasy"   ISBN="2-3631-4">             <title>Oberon's   Legacy</title&

Query节点操作,jQuery插入节点,jQuery删除节点,jQuery Dom操作

一.创建节点 var box = $('<div>节点</div>'); //创建一个节点,或者var box = "<div>节点</div>"; $('body').append(box); //将节点插入到<body>元素内部 二.插入节点 jQuery 提供了好几种个方法来插入节点: 1.内部插入节点方法  方法名 描述 append(content) 向指定元素内部后面插入节点 content append(func

链式二叉搜索树#插入节点#

定义一个二叉树节点的数据结构如下: typedef struct TREE_NODE { TREE_TYPE value; struct TREE_NODE *pLeft; struct TREE_NODE *pRight; }TreeNode; 插入节点的原型为:void insert(TreeNode **pLink,TREE_TYPE data): 如果要将数组元素a[10]={20,12,25,5,16,28,2,17,26,29}; 下面分两种情况讨论: ①    :当二叉搜索树为空时

jQuery节点操作,jQuery插入节点,jQuery删除节点,jQuery Dom操作

一.创建节点 1 var box = $('<div>节点</div>'); //创建一个节点,或者var box = "<div>节点</div>"; 2 $('body').append(box); //将节点插入到<body>元素内部 二.插入节点jQuery 提供了好几种个方法来插入节点:1.内部插入节点方法  方法名 描述 append(content) 向指定元素内部后面插入节点 content append(fu

JavaScript之DOM-5 增加、删除和替换节点(创建节点、插入节点、删除和替换节点)

一.创建节点 创建元素 - 使用如下方法可以创建一个新的元素节点: - document.createElement('元素名'); 创建文本节点 - 使用如下方法可以创建一个新的元素节点: - document.createTextNode('text'); 创建注释 - 使用如下方法可以创建一个HTML注释节点: - document.createComment('comment'); 创建文档片段 - 使用如下方法可以创建一个文档片段: - document.createDocumentF