封装insertAfter

DOM 封装一个Node.insertAfter

有时候我们需要在节点后插入一个节点此时我们不能用Node.insertBefore,因此我们需要封装一个 Node.insertAfter的方法。


开始此前我们必须要知道的元素:

新元素:你想插入的元素(newElement);

父元素:目标元素的父元素(parentElement);

目标元素:你要插到哪个元素(targetElement)之前;


代码:

Element.prototype.insertAfter = function (targetNode, afterNode) {  //在原型链创建一个方法
    var before = afterNode.nextElementSibling; // 声明一个变量,用来放目标元素的下一个兄弟节点
    if(before == null) { // 判断有没有下一个兄弟节点
        this.appendChild(targetNode); // 在父元素内添加新元素 ,在末尾加
    }else {
        this.insertBefore(targetNode, before); // 反转方法 用它的后面的兄弟节点向前加子节点
    }
};

测试:

Element.prototype.insertAfter = function (targetNode, afterNode) {  
    var before = afterNode.nextElementSibling; 
    if(before == null) { 
        this.appendChild(targetNode);
    }else {
        this.insertBefore(targetNode, before);
    }
};
var div = document.getElementsByTagName('div')[0];
var p = document.getElementsByTagName('p')[0];
var b = document.getElementsByTagName('b')[0];
var san = document.getElementsByTagName('san')[0];

var a = document.createElement('a');
div.insertAfter(a,b);
console.log(div);

结果:
结果

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值