JavaScript高程第十章:DOM(中)

重要引见不经常使用的DOM范例

这里引见我们的其他范例,包括以下几个范例:

  • Text范例

  • Comment范例

  • CDATASection范例

  • DocumentType范例

  • DocumentFragment范例

  • Attr范例

<!– more –>

Text范例

文本节点由Text范例示意

特征

  • nodeType值为3

  • nodeName为”#text”

  • nodeValue为节点包括的文本

  • parentNode是一个Element

  • 不支撑(没有)子节点

我们能够经由过程nodeValue/data接见Text节点包括的文本.

要领

  • appendData(text)将text增加到节点末端

  • deleteData(offset,count)从offset指定位置最先删除count个字符

  • insertData(offset,text)从offset指定位置插进去text

  • replaceData(offset,count,text)用text替代从offset指定的位置最先到offset+count为止处的文本

  • splitText(offset)从offset指定的位置将当前文本节点分红两个文本节点

  • substringData(offset,count)提取从offset指定位置最先到offset+count为止的字符串
    除此以外,哈有length属性,保留着节点中字符的数量.且值与nodeValue.length和data.length雷同.

注重事项

  • 修改时字符串会经由HTML/XML编码,所以关于小于号,大于号和引号我们要举行转义

建立文本节点

document.createTextNode()接收一个参数,就是插进去节点的文本,然后将会依据HTML/XML的花样举行编码.而且在建立时也会为其设置ownerDocument属性.固然我们要将它增加进文档树中照样须要之前引见过的操纵的.

规范化文本节点

normalize()这个要领,在一个包括多个文本节点的父元素上挪用该要领,会将一切文本节点合并成一个节点.
注重!(IE6):该要领会致使崩溃

支解文本节点

Text范例供应了splitText要领就是和规范化文本节点相反的一个要领,这个要领我们在之前有引见到,这是从文本节点提取数据的经常使用DOM剖析手艺

Comment范例

这就是解释了,在DOM中经由过程Comment范例来示意我们的解释.

特征

  • nodeType值为8

  • nodeName值为”#comment”

  • nodeValue值为解释的内容

  • parentNode多是Document或Element

  • 不支撑(没有)子节点

值得注重的是Comment范例和Text范例继续自雷同的基类,一切在要领上除了splitText()外一切字符串操纵要领都与Text范例相似.

建立

document.createComment(text)这个也与文本节点相似,而我们也很少接见这类节点,所以这里不再赘述

CDATASection范例

只针对XML文档,示意的是CDATA地区,这与Comment相似,而且该范例继续自Text范例,因而除了splitText()要领以外一切字符串操纵要领都相似

特征

  • nodeType值为4

  • nodeName值为”#cdata-section”

  • nodeValue为CDATA地区中的内容

  • parentNode多是Document或Element

  • 不支撑(没有)子节点

建立

document.createCDataSection()能够建立CDATA地区,传入参数为传入节点的内容.

DocumentType范例

这在Web浏览器中并不经常使用

特征

  • nodeType值为10

  • nodeName值为doctype称号

  • nodeValue值为null

  • parentNode是Document

  • 不支撑(没有)子节点

在DOM 1级中,DocumentType对象不能动态建立,只能经由过程剖析文档代码体式格局建立.支撑它的浏览器会把DocumentType对象保留在document.doctype中.而且形貌了DocumentType对象的3个属性:name,entities和notations.

  • name 示意文档范例称号

  • entities 即文档范例形貌的遗体的NamedNodeMap对象

  • notations 是由文档范例形貌的标记的NamedNodeMap对象
    一般来讲只要name是有效的,它保留了<!DOCTYPE以后的文本.

DocumentFragment范例

在一切节点范例中,只要该范例在文档中没有对应的标记.DOM划定文档片断是一种”轻量级”的文档,能够包括和掌握节点,但不会和完全的文档那样占用分外资本.

特征

  • nodeType 值为11

  • nodeName 值为”#document-fragment”

  • nodeValue 为null

  • parentNode为null

  • 子节点能够是Element,ProcessingInstruction,Comment,Text,CDATASection,EntityReference

它能够说是一个文档节点的堆栈

建立

document.createDocumentFragment()要领建立文档片断,它继续了Node一切的要领,我们能够经由过程之前所说的要领增加节点到文档片断中,再经由过程要领将文档片断增加到文档中,然则这过程当中发作的并非将文档片断增加到文档树.
文档片断自身永久不会成为文档树的一部分,实际上批示将其一切子节点增加(转移)到响应位置.

Attr范例

元素特征在DOM中以Attr范例示意,在一切浏览器中我们都能够接见Attr范例的组织函数和原型.能够说特征就是存在于元素的attributes属性中的节点.

特征

  • nodeType值为2

  • nodeName为特征名

  • nodeValue为特征值

  • parentNode值为null

  • HTML中不支撑(没有)子节点

  • XML中子节点能够是Text或EntityReference
    只管我们称它为节点,然则特征并不被认为是DOM文档树的一部分.

属性

  • name

  • value

  • specified
    这些在我们之前的章节也有所引见,不再赘述

建立

document.createAttribute(name)能够建立响应的特征,传入参数为特征名

    原文作者:thewindsword
    原文地址: https://segmentfault.com/a/1190000007241987
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞