DOM对于前端来说应该并不陌生,一个很基本的概念,今天就来简单的说说下什么是DOM,也是让自己做到一个理解~
下面有请DOM出场:(掌声哗啦啦)
DOM,英文名Document Object Model,中文名文档对象模型,根据w3c DOM规范,可以理解为网页的API,是w3c组织推荐的处理可扩展标记语言的标准编程接口,但独立于平台和语言,就是跟它们半毛钱关系都没有。就是说,这是一个表示和处理一个HTML或XML文档的常用方法,那把网页的各个元素看作一个个对象,然后找呀找呀找对象,是带走还是改变,那就后谈了。不过它必须通过javasript等脚本语言来进行获取,改变XHTML,HTML以及XML等文档。
根据百科的说法,
“DOM解决了Netscape的javascript和microsoft的javascript之间的冲突,给予web设计师和开发者一个标准的方法,让他们来访问他们站点中的数据,脚本和表现层对象”。百科里还提到,”DOM是以层次结构组织的节点或信息片段的集合。这个层次结构允许开发人员在树中导航寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作,由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。“听起来也是比我说的专业啊,说白了,就是找对象,不过是非常有层次的找,或者说机械程序,按部就班的找对象吧。
DOM也有孩子的,比如说HTML DOM和XML DOM,说说HTML DOM吧,它定义了访问和操作HTML文档的标准方法,把HTML文档呈现为带有元素、属性和文本的树结构(节点树)。HTML DOM就是我们平时经常看到的一个很经典的图
节点信息:每个节点都拥有包含着关于节点某些信息的属性,分别为nodeName(节点名称),nodeValue(节点值),nodeType(节点类型)
HTML DOM属性:是节点(HTML元素)的值,能够获取或设置,
nodeName属性含有某个节点的名称:
(1)元素节点的nodeName是标签名称;
(2)属性节点的nodeName是属性名称;
(3)文本节点的nodeName永远是#text;
(4)文档节点的nodeName永远是#document
PS:nodeName所包含的XML元素的标签名称永远是大写。
nodeType属性返回节点的类型,是只读的:
(1)元素1;(2)属性2;(3)文本3;(4)注释8;(5)文档9;
nodeValue属性规定节点的值:
(1)元素节点的nodeValue是undefined或null;
(2)文本节点的nodeValue是文本本身;
(3)属性节点的nodeValue是属性值;
看张图,应该比较形象的
理解还不够深,主要在于用,多实践实践吧~敬请交流哈,多多指教!