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
。
JavaScript中易混淆的DOM属性及方法对比的更多相关文章
-
JavaScript中的window对象的属性和方法;JavaScript中如何选取文档元素
一.window对象的属性和方法 ①setTimeout()方法用来实现一个函数在指定毫秒之后运行,该方法返回一个值,这个值可以传递给clearTimeout()用于取消这个函数的执行. ②setIn ...
-
javascript中易犯的错误有哪些
javascript中易犯的错误有哪些 一.总结 一句话总结: 比如循环中函数的使用 函数中this的指向谁(函数中this的使用) 变量的作用域 1.this.timer = setTimeout( ...
-
JavaScript 节点操作Dom属性和方法(转)
JavaScript 节点操作Dom属性和方法 一些常用的dom属性和方法,列出来作为手册用. 属性: 1.Attributes 存储节点的属性列表(只读) 2.childNodes 存储 ...
-
C#中易混淆的知识点
C#中易混淆的知识点 一.引言 今天在论坛中看到一位朋友提出这样的一个问题,问题大致(问题的链接为:http://social.msdn.microsoft.com/Forums/zh-CN/52e6 ...
-
lua中易混淆函数
lua中易混淆的函数 ipairs和pairs: ipairs只能顺序遍历table,遇到key不是数字就会退出 pairs可以遍历table中所有元素 ----------------------- ...
-
JavaScript -- 时光流逝(四):js中的 Math 对象的属性和方法
JavaScript -- 知识点回顾篇(四):js中的 Math 对象的属性和方法 1. Math 对象的属性 (1) E :返回算术常量 e,即自然对数的底数(约等于2.718). (2) LN2 ...
-
JavaScript中四种不同的属性检测方式比较
JavaScript中四种不同的属性检测方式比较 1. 用in方法 var o = {x:1}; "x" in o; //true "y" in o; //fa ...
-
使用 JavaScript 中的 document 对象的属性,根据下拉框中选择的属性,更改页面中的字体颜色和背景颜色
查看本章节 查看作业目录 需求说明: 使用 JavaScript 中的 document 对象的属性,根据下拉框中选择的属性,更改页面中的字体颜色和背景颜色 实现思路: 在页面的 <body&g ...
-
深入理解javascript函数系列第三篇——属性和方法
× 目录 [1]属性 [2]方法 前面的话 函数是javascript中的特殊的对象,可以拥有属性和方法,就像普通的对象拥有属性和方法一样.甚至可以用Function()构造函数来创建新的函数对象.本 ...
随机推荐
-
Sql数据库帮组类
这段时间闲下来写了一些东西,重新写了一个简单的数据库帮组类 public class MyDBHelper { public static readonly string connString = C ...
-
MyBatis魔法堂:各数据库的批量Update操作
一.前言 MyBatis的update元素的用法与insert元素基本相同,因此本篇不打算重复了.本篇仅记录批量update操作的sql语句,懂得SQL语句,那么MyBatis部分的操作就简单了. ...
-
A.2 Main
程序的执行从类Main的方法main开始.方法main创建了一个词法分析器和一个语法分析器,然后调用语法分析器中的方法program. 1: package main: 2: import java. ...
-
ubuntu16.10下安装erlang和RabbitMQ
Ubuntu系统下安装RabbitMQ(我选择的是Ubuntu Server 16.10) 1.首先必须要有Erlang环境支持 --安装之前要装一些必要的库(Erlang开发环境同样)(参考:duq ...
-
Socket之心跳包实现思路
由于最近要做一个客户端,但是要求有一个掉线检测的功能,下面让我们看看使用自定义的HeartBeat方式来检测客户端的连接情况. 心跳包的实现思路: 客户端连接上服务端后,在服务端会维护一个在线客户端列 ...
-
20155339 2016-2017-2 《Java程序设计》第5周学习总结
20155339 2016-2017-2 <Java程序设计>第5周学习总结 教材学习内容总结 使用try.catch 使用try.catch语法,JVM会先尝试执行try区块中的代码,如 ...
-
c++11 随机代码记录
// RadomTest.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #includ ...
-
Nagios安装完后status map,trends等页面访问出错之解决
首先,可以进入/usr/local/nagios/sbin, [root@localhost sbin]# ldd statusmap.cgi linux-vdso.so. => (0x0000 ...
-
Linux 查看CPU个数和磁盘个数
top后按数字1,多个cpu的话会显示多个 fdisk -l可以看到多个物理硬盘,做了硬raid只能看到一个硬盘 cat /proc/cpuinfo查看cpu具体的信息
-
spring 编译时抱错纪录class path resource [spring/] cannot be resolved to URL because it does not exist
class path resource [spring/] cannot be resolved to URL because it does not exist; 在 pom.xml 里添加如下代码 ...