javascript快速入门15--节点

2019-11-30 03:16栏目:竞技宝竞猜
TAG:

节点编号:节点名称: 1Element 2Attribute 3Text 4CDATA Section 5Entity Reference 6Entity 7Processing Instrucion 8Comment 9Document 10Document Type 11Document Fragment 12Notation

概念和用法nodeType 属性重回被选节点的节点类型。

节点类型

DOM定义了Node的接口以致许七种节点类型来代表节点的多个地方!

  • Document——最顶层的节点,全数的别样节点都是专项于它的。
  • DocumentType——DTD引用(使用<!DOCTYPE >语法)的目的表现格局,譬如<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" >。它不可能包括子节点。
  • DocumentFragment——可以像Document相仿来保存别的节点。
  • Element——表示起先标签和截至标签之间的剧情,举个例子<tag ></tag >或许<tag / >。那是唯后生可畏可以并且含有天性和子节点的节点类型。
  • Attr——代表意气风发对特色名和特色值。这一个节点类型不能够包括子节点。
  • Text——代表XML文书档案中的在早先标签和甘休标签之间,也许CData Section内含有的平常文书。这些节点类型不能够包括子节点。
  • CDataSection——<![CDATA[ ]]>的靶子表现方式。那几个节点类型仅能包蕴文本节点Text作为子节点。
  • Entity——表示在DTD中的四个实体定义,比方<!ENTITY foo "foo">。那一个节点类型不可能富含子节点。
  • EntityReference——代表八个实体援引,比方"。这几个节点类型不可能包蕴子节点。
  • ProcessingInstruction——代表叁个PI(管理指令卡塔尔国。这么些节点类型不能够富含子节点。
  • Comment——代表注释。这一个节点类型不能够富含子节点。
  • Notation——代表在DTD中定义的符号。这么些相当少用到,所以大家不构和论。

还定义了对应不相同节点类型的10个常量.

  • Node.ELEMENT_NODE (1)
  • Node.ATTRIBUTE_NODE (2)
  • Node.TEXT_NODE (3)
  • Node.CDATA_SECTION_NODE (4)
  • Node.ENTITY_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)
  • Node.NOTATION_NODE (12)

节点类型常量都以Node对象的质量,不过IE不支持Node对象,可是还是能够应用数值

Node接口也定义了一些富有节点类型都包涵的特征和方法。大家在上面的表格中列出了这几个特点和办法:

特性/方法 类型/返回类型 说 明
nodeName String 节点的名字;根据节点的类型而定义,元素节点返回tagName,文本节点返回#text,属性节点返回属性名
nodeValue String 节点的值;根据节点的类型而定义.元素节点此属性为空,文本节点些属性即为节点中的字符串,属性节点返回属性值
nodeType Number 节点的类型常量值之一
ownerDocument Document 指向这个节点所属的文档
firstChild Node 指向在childNodes列表中的第一个节点
lastChild Node 指向在childNodes列表中的最后一个节点
childNodes NodeList 所有子节点的列表
previousSibling Node 指向前一个兄弟节点;如果这个节点就是第一个兄弟节点,那么该值为null
nextSibling Node 指向后一个兄弟节点;如果这个节点就是最后一个兄弟节点,那么该值为null
hasChildNodes() Boolean 当childNodes包含一个或多个节点时,返回真
attributes NamedNodeMap 包含了代表一个元素的特性的Attr对象;仅用于Element节点
appendChild(node) Node node添加到childNodes的末尾
removeChild(node) Node 从childNodes中删除node
replaceChild (newnode,oldnode) Node 将childNodes中的oldnode替换成newnode
insertBefore (newnode,refnode) Node 在childNodes中的refnode之前插入newnode

除节点外,DOM还定义了有个别臂膀对象,它们得以和节点一齐使用,但不是DOM文书档案必有的有个别。

  • NodeList——节点数组,依照数值举行索引;用来代表七个成分的子节点。举例childNodes。NodeList有个length属性表示节点数量
  • NamedNodeMap——同不常候用数值和名字实行索引的节点表;用于表示成分天性。例如成分的attributes。NamedNodeMap对象也是有二个length属性来提醒它所满含的节点的数据。

这么些助手对象为管理DOM文书档案提供附加的拜访和遍历方法。

语法:elementNode.nodeType

品质节点

正如前方提到的,尽管Node接口已具有attributes方法,且已被有着类型的节点世袭,不过,独有Element节点本领有风味。Element节点的attributes属性其实是NamedNodeMap,它提供一些用于访问和管理其剧情的法子:

  • getNamedItem(name卡塔尔(英语:State of Qatar)——再次回到nodeName属性值等于name的节点;
  • removeNamedItem(name卡塔尔国——删除nodeName属性值等于name的节点;
  • setNamedItem(node卡塔尔(英语:State of Qatar)——将node增添到列表中,按其nodeName属性举行索引;
  • item(pos卡塔尔——像NodeList同样,重临在地点pos的节点;

请记住那一个点子都以回来三个Attr节点,而非个性值。

当NamedNodeMap用于表示性申时,当中各种节点都以Attr节点,它的nodeName属性被设置为特色名称,而nodeValue属性被安装为特征的值。示例:

    <p id="p1" style="background-color:red;" title="P!!!">Some Text!</p>
    var p1 = document.getElementById("p1");
    //访问ID属性
    alert(p1.attributes.getNamedItem("id")).nodeValue;
    //也可以用数值来访问ID属性
    alert(p1.attributes.item(0)).nodeValue;
    //也可以改变它的值
    p1.attributes.getNamedItem("id").nodeValue = "newP1";

 

Attr节点也可能有三个一心平等(相同的时间也全然同步于)nodeValue属性的value属性,何况有name属性和nodeName属性保持同步。大家得以随便动用这几个属性来改进或改变天性。但那个措施都比较复杂,所以DOM又定义了多个要素方法来赞助访谈天性:

  • getAttribute(name)——等于attributes.getNamedItem(name).value
  • setAttribute(name, newValue)——等于attribute.getNamedItem(name).value = newValue
  • removeAttribute(name)——等于attributes.removeNamedItem(name)

版权声明:本文由龙竞技官网发布于竞技宝竞猜,转载请注明出处:javascript快速入门15--节点