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()
:该方法接受两个参数:newchild
和oldchild
。oldchild
将会被newchild
替换,返回值是oldchild
。
上一篇: canvas 绘制双线技巧
推荐阅读
-
JavaScript中的获取对象宽高等属性的方法和区别对比讲解
-
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
-
JavaScript中易混淆的DOM属性及方法对比
-
闭包的原理与经典应用场景,访问器属性,类与对象的创建与成员引用,数组与对象的解构过程与经典案例,JS引入到浏览器中的的方法及获取DOM元素的两个API
-
闭包的原理与经典应用场景,访问器属性,类与对象的创建与成员引用,数组与对象的解构过程与经典案例,JS引入到浏览器中的的方法及获取DOM元素的两个API
-
JavaScript中的获取对象宽高等属性的方法和区别对比讲解
-
谈谈js中的prototype及prototype属性解释和常用方法_javascript技巧
-
谈谈js中的prototype及prototype属性解释和常用方法_javascript技巧
-
JavaScript中易混淆的DOM属性及方法对比
-
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法