zoukankan      html  css  js  c++  java
  • JavaScript中易混淆的DOM属性及方法对比

    JavaScript中易混淆的DOM属性及方法对比

    ParentNode.children VS Node.prototype.childNodes

    ParentNode.children:该属性继承自ParentNode,返回值是一个HTMLCollection实例,成员是当前节点的所有元素子节点,该属性只读,且该属性是动态集合。

    Node.prototype.childNodes:该属性继承自Node,返回值是一个NodeList实例,成员是当前节点的所有子节点(包括但不限于元素子节点),该属性也是个动态集合。

    ParentNode.firstElementChild VS Node.prototype.firstChild

    ParentNode.firstElementChild:该属性返回当前节点的第一个元素子节点,如果没有任何元素子节点,则返回null

    Node.prototype.firstChild:该属性返回当前节点的第一个子节点(包括但不限于元素子节点),如果没有任何子节点则返回null

    ParentNode.lastElementChild VS Node.prototype.lastChild

    同上。

    ChildNode.remove() VS Node.prototype.removeChild()

    ChildNode.remove():该方法用于从父节点中移除当前节点,没有返回值。

    el.remove();    // 从DOM中移除了el节点
    

    Node.prototype.removeChild():该方法接受一个子节点作为参数,用于从当前节点移除该子节点,返回值是被移除的子节点。需要注意的是,被移除的节点依然存在于内存之中,但不再是DOM的一部分,所以,一个节点被移除以后,可以复用。

    document.body.removeChild(el);  // 从DOM中移除了el节点
    

    ChildNode.before() VS Node.prototype.insertBefore()

    ChildNode.before():该方法用于在当前节点的前面,插入一个或多个同级节点,插入完成后,新节点与当前节点拥有相同的父节点。该方法无返回值。

    var p = document.createElement('p');
    var p1 = document.createElement('p');
    
    // 插入元素节点
    el.before(p);
    
    // 插入文本节点
    el.before('Hello');
    
    // 插入多个元素节点
    el.before(p, p1);
    
    // 插入元素节点和文本节点
    el.before(p, 'Hello');
    

    Node.prototype.insertBefore():该方法接受两个参数,第一个参数newNode,第二个参数referenceNode,用于将newNode插入到referenceNode前面,返回值是插入的新节点newNode。注意,newNode的类型必须是Node,也就是说该方法不能用于插入文本节点。当referenceNode不是当前节点的子节点是将会报错。

    ChildNode.replaceWith() VS Node.prototype.replaceChild()

    ChildNode.replaceWith():该方法接受一个参数newNode,当前节点江北newNode节点替换。该函数无返回值。

    var span = document.createElement('span');
    el.replaceWith(span);   // el将被span节点替换,但el仍在内存中
    

    Node.prototype.replaceChild():该方法接受两个参数:newChildoldChildoldChild将会被newChild替换,返回值是oldChild

  • 相关阅读:
    Android JNI 本地开发接口
    Android 主题切换 小结
    Android 屏幕适配
    android 中获取视频文件的缩略图(非原创)
    android 多媒体数据库(非原创)
    Android tween 动画 XML 梳理
    activity 四种启动模式
    Activity 横竖屏切换
    Android Activity 管理 (AppManager)(非原创)
    Android moveTaskToBack(booleannon Root)
  • 原文地址:https://www.cnblogs.com/zhuangshq/p/10150294.html
Copyright © 2011-2022 走看看