0 x01:
DOM是javascript操作网页的接口,全称为文档对象模型(文档对象模型)。它的作用是将网页转为一个javascript对象,从而可以使用javascript对网页进行各种操作(比如增删内容)。浏览器会根据DOM模型,将HTML文档解析成一系列的节点,再由这些节点组成一个树状结构.DOM的最小组成单位叫做节点(节点),文档的树形结构(DOM树)由12种类型的节点组成。本文将主要说明DOM节点类型。
HTML DOM定义了访问和操作HTML文档的标准方法,将HTML DOM文档表达为树结构。(此时应该放上W3C的经典图)
<强>按照个人的理解,css对应的标签,js对应的元素,DOM对应的节点,三个名称其实表示同一个内容,只是在不同的技术名称不同。强>
一般地,节点至少拥有nodeType,节点名和nodeValue这三个基本属性。节点类型不同,这三个属性的值也不相同
0 x02: nodeType
nodeType属性返回节点类型的常数值。不同的类型对应不同的常数值,12种类型分别对应1到12的常数值
<代码>元素节点Node.ELEMENT_NODE (1) 属性节点Node.ATTRIBUTE_NODE (2) 文本节以核对node . text_node点(3) CDATA节点Node.CDATA_SECTION_NODE (4) 实体引用名称节点Node.ENTRY_REFERENCE_NODE (5) 实体名称节点Node.ENTITY_NODE (6) 处理指令节点Node.PROCESSING_INSTRUCTION_NODE (7) 注释节点Node.COMMENT_NODE (8) 文档节点Node.DOCUMENT_NODE (9) 文档类型节点Node.DOCUMENT_TYPE_NODE (10) 文档片段节点Node.DOCUMENT_FRAGMENT_NODE (11) DTD声明节点Node.NOTATION_NODE(12) 代码>
DOM定义了一个节点接口,这个接口在javascript中是作为节点类型实现的,而在IE8——浏览器中的所有DOM对象都是以COM对象的形式实现的,所以,IE8——浏览器并不支持节点对象的写法
<代码>//在标准浏览器下返回1,而在IE8——浏览器中报错,提示节点未定义 console.log (Node.ELEMENT_NODE);//1 代码>
节点名
节点名属性返回节点的名称
nodeValue
nodeValue属性返回或设置当前节点的值,格式为字符串
接下来,将按照节点类型的常数值对应顺序,从1到12进行详细说明
<代码> # 0 x02:元素节点 元素节点元素对应网页的HTML标签元素。元素节点的节点类型nodeType值是1,节点名称nodeName值是大写的标签名,nodeValue值是null 代码>
以身体元素为例
<代码>//1“身体”为空 console.log (document.body.nodeType document.body.nodeName document.body.nodeValue) console.log(节点。ELEMENT_NODE===1);//真正的代码>
<>强特性节点强>
元素特性节点属性对应网页中HTML标签的属性,它只存在于元素的属性属性中,并不是DOM文档树的一部分。特性节点的节点类型nodeType值是2节点名称nodeName值是属性名,nodeValue值是属性值
现在,div元素有id=皌est"的属性
<代码> & lt; div id=安馐浴弊4? lt;/div> & lt; script> var attr=test.attributes.id;//2“id”“测试” console.log (attr.nodeType attr.nodeName attr.nodeValue) console.log(节点。ATTRIBUTE_NODE===2);//真实的 & lt;/script> 代码>
<>强文本节点强>
文本节点文本代表网页中的HTML标签内容。文本节点的节点类型nodeType值是3节点名称nodeName值是“#文本”,nodeValue值是标签内容值
现在,div元素内容为“测试”
<代码> & lt; div id=安馐浴钡脑诓馐? lt;/div> & lt; script> var txt=test.firstChild;//3 #文本“测试的 console.log (txt.nodeType txt.nodeName txt.nodeValue) console.log(节点。TEXT_NODE===3);//真实的 & lt;/script>代码>
<强> CDATA节点强>
CDATASection类型只针对基于XML的文档,只出现在XML文档中,表示的是CDATA区域,格式一般为
& lt; ! [CDATA [
]]在
该类型节点的节点类型nodeType的值为4节点名称节点名的值为“# CDATA区域”,nodevalue的值是CDATA区域中的内容
<>强实体引用名称节点强>
实体是一个声明,指定了在XML中取代内容或标记而使用的名称。实体包含两个部分,首先,必须使用实体声明将名称绑定到替换内容。实体声明是使用& lt; !实体名称“value"比;语法在文档类型定义(DTD)或XML架构中创建的。其次,在实体声明中定义的名称随后将在XML中使用。在XML中使用时,该名称称为实体引用。