重写removeChild方法

基础回顾:

Node.removeChild() 方法从DOM中删除一个子节点。

返回被删除的节点。如果节点不存在则返回 null。

let oldChild = node.removeChild(child);

如果想要在removeChild方法里多做一点事情,那么就需要重写removeChild了。

需要知道的两点是:1、它是Node原型上的方法;2、它的返回值。

了解了这两点,重写它就一点也不难啦!

Node.prototype.removeChildNew = Node.prototype.removeChild;

Node.prototype.removeChild = function (n) {
  console.log('待删除的节点', n);
  
  if(!n) {
    return null;
  }

  const isBreak = n.nodeType === 8; // 例如,节点为注释节点时不删除
  if(isBreak ) {
    return null; // 不删除
  }
  
  return this.removeChildNew(a); // 正常删除
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐