您的位置:首页 > Web前端 > JavaScript

JS 封装inserAfter()方法

2020-07-14 05:52 309 查看

封装insertAfter()方法

在JS中,系统提供了Node.insertBefore(a, b)方法,在参考节点b之前插入一个拥有指定父节点Node的子节点a。

我们可以封装一个类似insertBefore()的函数 inertAfter(a, b),实现在参考节点b之后插入一个拥有指定父节点Node的子节点a。

思路:获取参考节点afterNode的下一个元素节点,利用insertBefore操作完成相应功能

//在原型上进行封装
Element.prototype.insertAfter = function(targetNode, afterNode){
// 获取afterNode节点的下一个元素节点
var beforeNode = afterNode.nextElementSibling;

// 处理afterNode为最后一个子元素的情况
if(beforeNode == null){
this.appendChild(targetNode);
}else{
this.insertBefore(targetNode, beforeNode);
}
}

eg:若HTML代码如下所示

<div>
<p></P>
<b></b>
<i></i>
</div>

若要在后插入标签,先获取父节点和参考节点;然后创建子节点strong。

var div = document.getElementsByTagName('div')[0];
var b = doucment.getElementsByTagName('b')[0];

var strong = document.createElement('strong');

div.insertAfter(strong, b);
console.log(div);

控制台输出如下

<div>
<p></P>
<b></b>
<strong></strong>
<i></i>
</div>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: