DOM(Document Object Model)全称文档对象模型。DOM其实是JavaScript操作网页的一套API接口,定义了访问和操作HTML文档的标准。定义了所有HTML元素的对象和属性,以及访问他们的方法。浏览器会根据DOM模型,将结构化文档解析成一系列的节点,再由这些节点组成一个树状结构,所以它的作用是将网页转为一个个节点对象,从而可以用脚本对其进行各种操作获取,修改,添加或删除HTML元素。

1.DOM节点

文档对象是由不同类型的节点对象组成的,所以要操作文档对象,我们得知道有哪些节点对象。节点对象都有一个nodeType属性,通常是由一个数值常量表示

(1)常见的节点对象:

ELEMENT_NODE(1),元素节点对象
ATTRIBUTE_NODE(2),属性节点对象
TEXT_NODE(3),文本节点对象
COMMENT_NODE(8),注释节点对象
DOCUMENT_NODE(9),文档节点对象
DOCUMENT_TYPE_NODE(10),文档类型节点对象
DOCUMENT_FRAGMENT_NODE(11),文档片段节点对象

(2)节点对象之间的关系

整个文档对象,是由不同的节点对象组成,这些节点之间都存在在关系,常见的关系有:

parentNode,父节点
previousSibling,前一个兄弟节点
nextSibling,后一个兄弟节点
firstChild,第一个子节点
lastChild,最后一个字节点
childNodes,子节点集合
ownerDocument, 顶层文档对象,即document对象。
parentElement,返回当前节点的父Element节点

(3)操作节点对象的方法

appendChild(node);向childNodes列表的末尾添加一个节点
insertBefore(newnode,position);往childNodes列表中的某个固定的位置插入一个节点,要是参照节点为null,默认加在末尾
replaceChild(newnode,position)替换某个节点
removeChild(node);删除某个节点
cloneNode(true/false);克隆对象
contains(),接受一个节点作为参数,返回一个布尔值,表示参数节点是否为当前节点的后代节点。
isEqualNode(),
normalize(), 清理当前节点内部的所有Text节点
hasChildNodes()

理解HTML DOM的更多相关文章

  1. 深度理解 Virtual DOM

    目录: 1 前言 2 技术发展史 3 Virtual DOM 算法 4 Virtual DOM 实现 5 Virtual DOM 树的差异(Diff算法) 6 结语 7 参考链接 1 前言 我会尽量把 ...

  2. 全面理解虚拟DOM(1)

    最近一两年前端最火的技术莫过于 reactjs,angularJS,vuejs,即便你没用过也可能听过,像ReactJS由业界顶尖的互联网公司facebook提出,其本身有很多先进的设计思路,比如页面 ...

  3. 全面理解虚拟DOM,实现虚拟DOM

    1.为什么需要虚拟DOM DOM是很慢的,其元素非常庞大,页面的性能问题鲜有由JS引起的,大部分都是由DOM操作引起的.如果对前端工作进行抽象的话,主要就是维护状态和更新视图:而更新视图和维护状态都需 ...

  4. 抛开react,如何理解virtual dom和immutability

    去年以来,React的出现为前端框架设计和编程模式吹来了一阵春风.很多概念,无论是原本已有的.还是由React首先提出的,都因为React的流行而倍受关注,成为大家研究和学习的热点.本篇分享主要就聚焦 ...

  5. 理解Shadow DOM(一)

    1. 什么是Shadow DOM? Shadow DOM 如果按照英文翻译的话可以理解为 影子DOM, 何为影子DOM呢?可以理解为一般情况下使用肉眼看不到的DOM结构,那如果一般情况下看不到的话,那 ...

  6. 如何理解Virtual DOM

    什么是虚拟DOM 接下来用vdom(Virtual DOM)来简称为虚拟DOM. 指的是用JS模拟的DOM结构,将DOM变化的对比放在JS层来做.换而言之,虚拟DOM就是JS对象.如下DOM结构: & ...

  7. 理解 Virtual DOM(摘)及评价

    框架并没有提高web的性能,只是让开发者更加专注的完成业务逻辑,而不用过渡的考虑性能上的优化.如果以性能来比的话,框架是绝对比不过优化后的原生代码的. 二.什么是Virtual DOM Virtual ...

  8. 怎么理解虚拟 DOM?

    一.前言 现在web前端的开发,对于MVVM框架的运用,那是信手拈来,用的飞起.一个xxx-cli工具,就能初始化一套模板,再填充业务代码,打包部署即可.但是会用,是一个方面,大家有没有底层深入思考一 ...

  9. Virtual DOM 虚拟DOM的理解(转)

    作者:戴嘉华 转载请注明出处并保留原文链接( #13 )和作者信息. 目录: 1 前言 2 对前端应用状态管理思考 3 Virtual DOM 算法 4 算法实现 4.1 步骤一:用JS对象模拟DOM ...

随机推荐

  1. 文档转换为pdf格式帮助类

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using Word = M ...

  2. golang学习之rpc实例

    rpc(远程过程调用),可以像调用本地程序一样调用远端服务,rpc分为http方式和tcp连接方式,使用http的rpc调用如下: 首先是server端: // rpc_server project ...

  3. Eclipse 入手配置

    工欲善其事,必先利其器 在安装eclipse后进行简单的配置能够为以后的开发提高不少效率,这里慢慢先记录自己的经验. 一.编码配置 utf-8 1.worksplace: 首先设置就是workspac ...

  4. 4、springboot之全局异常捕获

    1.新建一个springboot项目 添加一个全局异常的类 import org.springframework.web.bind.annotation.ControllerAdvice; impor ...

  5. MyBaits_查询缓存02_Ehcache二级缓存

    一.Ehcache二级缓存的开启 导入jar(https://github.com/mybatis/ehcache-cache/releases) <cache type="org.m ...

  6. Toolbar和Drawerlayout的基本使用

    参考文章: http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1118/2006.html http://www.codeceo.c ...

  7. 简单工厂模式的C++、Java实现

    1.简单工厂模式UML UML如下: 图1. 简单工厂模式UML 2.C++实现 类视图如下: 图2. C++实现简单工厂模式类视图 其中,SimpleFactory实现为: Product * Si ...

  8. ActiveX界面已显示,调用方法报undefined的处理办法

    1.在ie中将当前网址加入信任网站 2.设置->internet选项->安全->受信任站点->自定义级别:将所有有关ActiveX的选项设置为启用 3.重启ie再次访问即可. ...

  9. js数组与字符串处理 slice、splice、substring、substr、push、pop、shift、reverse、sort、join、split

    数组 方法 1.在数组末尾添加.删除元素 push()方法可以接收任意数量的参数,把它们逐个添加到数组的末尾,并返回修改后数组的长度.改变原数组 pop()方法则从数组末尾移除最后一个元素,减少数组的 ...

  10. jQuery框架学习第十一天:实战jQuery表单验证及jQuery自动完成提示插件

    jQuery框架学习第一天:开始认识jQueryjQuery框架学习第二天:jQuery中万能的选择器jQuery框架学习第三天:如何管理jQuery包装集 jQuery框架学习第四天:使用jQuer ...