javascript的Comment、CDATASection、DocumentType、DocumentFragment、Attr类型

Comment类型

  1. nodeType为8,nodeName为#comment,nodeValue为注释内容;
  2. Comment类型拥有除splitText()之外的所有的属性和方法;
  3. 创建注释节点只需要传入注释内容即可
document.createComment('Hi');
  1. 一般浏览器不会识别位于后面的注释;

  2. 在IE8中,注释节点被视作标签名为”!” 的元素,注释节点可以使用getElementsByTagName('!')取得;

CDATASection类型

  1. nodeType为4,nodeName为#cdata-section,nodeValue为CDATA区域的内容;
  2. CDATASection类型针对的是XML文档,表示的是CDATA区域,在HTML文档中会错误地把CDATA区域解析为Comment或Element;
  3. 针对XML文档,可以使用document.createCDATASection()来创建CDATASection类型对象,接收一个参数:CDATA区域的内容;
  4. CDATASection类型继承自Text类型,除了splitText()方法外所有的属性和方法都拥有;

DocumentType类型

  1. nodeType为0;nodeName为#document,nodeValue为null;
  2. 不能动态的创建,只能有html文档规定;
  3. document.doctype.name(entities、notations这两个属性没有用)属性;
  4. 使用document.doctype访问DocumentType对象;

DocumentFragment类型

  1. 文档碎片;
  2. DocumentFragment节点类型在文档中没有对应标记,它是游离于文档之外的;
  3. DocumentFragment类型是一种轻量级的文档(类似完整的HTML文档),可以包含和控制节点,但不会像完整的文档那样占用额外的资源;
  4. nodeType为11;nodeName为#document-fragment;nodeValue为null;可以包含任意类型的子节点;
  5. DocumentFrgment类型一般作为一个节点仓库来使用,可以在里面保存将来可能添加到文档的节点,然后DocumentFragment整体插入到文档内;
  6. DocumentFragment类型继承了node类型的所有方法;
  7. 创建:document.createDocumentFragment();
  8. 文档碎片可以通过appendChild(DoCFrag), insertBefore(DocFrag)来插入文档,此时文档碎片便成为了文档的一部分;

Attr类型

  1. 元素的特性在DOM中以Attr类型来表示;
  2. 特性就是存在于元素的attributes属性对象中的节点;
  3. 三个属性:name, value, specified;
  4. 创建特性节点:document.createAttribute(attrName);
  5. 新创建的特性节点需要添加到元素上,使用元素的setAttribute(attrName)方法; html <!DOCTYPE html> <html> <body> <div id="123" style="height: 20px;">123</div> </body> <script> ele.setAttribute('align', 'left'); </script> </html> 6. 不建议直接访问元素的特性节点(getAttributeNode()等),而使用getAttribute(), setAttribute(), removeAttribute()来访问和操作元素的特性。