javascript实现把一个节点插入到另一个节点之后
来源:互联网 发布:中邮联合网络通信集团 编辑:程序博客网 时间:2024/05/16 18:48
DOM提供了一个方法,叫做insertBefore(),其作用是在已有节点之前插入新的子节点。遗憾的是,DOM并没有提供一个insertAfter()的方法—即在一个节点之后插入一个节点。
本文所讲的是如何用JS实现在一个节点之后插入另一个节点,也就是编写一个属于自己的insertAfter()。这儿顺便给出insertBefore()的相关语法,因为在自己编写的insertAfter()方法中,会使用到insertBefore()。
node.insertBefore(newnode,existingnode)参数 类型 描述newnode Node 对象 必需。需要插入的节点对象。existingnode Node 对象 可选。在其之前插入新节点的子节点。如果未规定,则 insertBefore 方法会在结尾插入 newnode。
以下就是用js实现的insertAfter()代码
function insertAfter(newElement,targetElement){ var parent = targetElement.parentNode; if(parent.lastChild == targetElement){ parent.appendChild(newElement); }else{ parent.insertBefore(newElement,targetElement.nextSibling); }}
代码本身是很简单的,为了便于理解,还是给出解释。
- 函数有两个参数,newElement,targetElement。分别是将被插入的新元素,和目标元素
- 我们将目标元素的父元素(parentNode)保存在 变量parent中
- 如果目标元素是父元素(parentNode)的最后一个子元素,
就用appendChild方法把新元素追加到parent元素上,这样新元素就恰好插入到 目标元素之后 - 如果目标元素不是父元素(parentNode)的最后一个子元素,用insertBefore方法把新元素插入到目标元素的下一个兄弟元素(targetElement.nextSibling)之前。
这个函数的实现呢,在《Javascript DOM 编程艺术》第七章是有讲到的。如果想了解更多的知识,最好看看原书。
0 0
- javascript实现把一个节点插入到另一个节点之后
- 实现一个 链表 有序插入新节点
- 编程实现一个单链表节点的插入
- javascript 插入节点appendChild()
- JavaScript 插入节点insertBefore()
- JavaScript_在指定节点之后插入新节点_insertAfter(newElement, targetElement) _ JavaScript扩展
- MySql中把一个表的数据插入到另一个表中的实现代码
- MySql中把一个表的数据插入到另一个表中的实现代码
- MySql中把一个表的数据插入到另一个表中的实现代码
- MySql中把一个表的数据插入到另一个表中的实现代码
- MySql中把一个表的数据插入到另一个表中的实现
- MySql中把一个表的数据插入到另一个表中的实现代码
- 实现双向链表删除一个节点P,在节点P后插入一个节点
- 判断一个节点是不是另一个的节点的子节点;
- ExtJs tree 中 之前插入节点和之后插入节点
- 把一个表的数据插入到另一个表
- 集合(3)把一个集合插入到另一个集合中
- 把一个表中的row插入到另一个表中时,出现“该行已属于另一个表”错误
- poj 2217 Longest Common Substring
- Other
- ACM模版库制作V2
- 祝贺《网络安全法》通过,实施细则任重道远
- 获取ip
- javascript实现把一个节点插入到另一个节点之后
- less学习笔记:基础语法
- Spring MVC 中自定义视图 @Component 及 配置 多个视图解析器 Excel视图
- include与required的区别
- ubuntu16.04(64位)安装wps及相关问题解决
- 谷歌深度学习四大教训:应用、系统、数据及原理(附数据集列表)
- cgi与fastcgi的区别
- js encode编码报错
- eclipse 调试多线程