`
bazhuang
  • 浏览: 149319 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

DOM Level 1学习之一_关于Node

阅读更多
今天想看看nodeType到底有几种情况,搜索到http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html,就仔细看了一下,把interface Node这段摘录如下:
interface Node {
  // NodeType
  const unsigned short      ELEMENT_NODE       = 1;
  const unsigned short      ATTRIBUTE_NODE     = 2;
  const unsigned short      TEXT_NODE          = 3;
  const unsigned short      CDATA_SECTION_NODE = 4;
  const unsigned short      ENTITY_REFERENCE_NODE = 5;
  const unsigned short      ENTITY_NODE        = 6;
  const unsigned short      PROCESSING_INSTRUCTION_NODE = 7;
  const unsigned short      COMMENT_NODE       = 8;
  const unsigned short      DOCUMENT_NODE      = 9;
  const unsigned short      DOCUMENT_TYPE_NODE = 10;
  const unsigned short      DOCUMENT_FRAGMENT_NODE = 11;
  const unsigned short      NOTATION_NODE      = 12;

  readonly attribute  DOMString            nodeName;
           attribute  DOMString            nodeValue;
                                                 // raises(DOMException) on setting
                                                 // raises(DOMException) on retrieval
  readonly attribute  unsigned short       nodeType;
  readonly attribute  Node                 parentNode;
  readonly attribute  NodeList             childNodes;
  readonly attribute  Node                 firstChild;
  readonly attribute  Node                 lastChild;
  readonly attribute  Node                 previousSibling;
  readonly attribute  Node                 nextSibling;
  readonly attribute  NamedNodeMap         attributes;
  readonly attribute  Document             ownerDocument;
  Node                      insertBefore(in Node newChild, 
                                         in Node refChild)
                                         raises(DOMException);
  Node                      replaceChild(in Node newChild, 
                                         in Node oldChild)
                                         raises(DOMException);
  Node                      removeChild(in Node oldChild)
                                        raises(DOMException);
  Node                      appendChild(in Node newChild)
                                        raises(DOMException);
  boolean                   hasChildNodes();
  Node                      cloneNode(in boolean deep);
};

其实nodeType有好多种啊,我只记得1和3,这2个比较常见。
这里有有个parentNode这个属性,那我们就来看一下对它的说明了:
The parent of this node. All nodes, except Document, DocumentFragment, and Attr may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is null.

平常还会看到offsetParent、parentElement这些,那这3个有什么区别么?
在W3C上对offsetParent的说明如下:
The offsetParent attribute, when called on element A, must return the element determined by the following algorithm:

If any of the following holds true return null and stop this algorithm:

A does not have an associated CSS layout box.
A is the root element.
A is the HTML body element.
The computed value of the position property for element A is fixed.
If A is an area HTML element which has a map HTML element somewhere in the ancestor chain return the nearest ancestor map HTML element and stop this algorithm.

Return the nearest ancestor element of A for which at least one of the following is true and stop this algorithm if such an ancestor is found:

The computed value of the position property is not static.
It is the HTML body element.
The computed value of the position property of A is static and the ancestor is one of the following HTML elements: td, th, or table.Return null.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title> new document </title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 </head>
<script>
function check(){
	var el = document.getElementById("test");
	alert(test.offsetParent.tagName+"::::"+test.parentNode.tagName);
}
</script>
 <body>
  <table width="100">
  <tr><td id="test">sss</td></tr>
  </table>
  <button onclick="check()">check</button>
 </body>
</html>

通过上面的代码可以看出在某些情况下offsetParent和parentNode是不同的,当然不仅仅局限于此种情况。

对于parentElement,MSDN上有这么一个评论:
Always use parentNode instead of parentElement
parentNode is standard and supported by most browsers, parentElement is proprietary

所以就不用去研究它了,意义不是很大,除非我们只开发IE only的网页。

对于node中其他的东西还需要在平时的开发过程中慢慢琢磨了,首先要知道它提供了这些方法给我们使用。
分享到:
评论

相关推荐

    DOM和BOM的使用

    DOM 标准发展历程是指 DOM 的发展过程,从最初的 DOM Level 0 到现在的 DOM Level 4,DOM 标准一直在发展和完善中。 DOM 操作 DOM 操作是指通过 JavaScript 操作文档的内容和结构。DOM 提供了许多方法和属性,...

    XML DOM 教程

    8. **DOM Level和版本**:DOM规范分为多个级别,如DOM Level 1、2和3,每个级别扩展了新的功能。了解不同级别的特性可以帮助开发者更高效地利用DOM。 9. **性能优化**:在处理大型XML文档时,理解DOM的性能瓶颈和...

    dom中文参考手册(chm)(chm)

    Java的DOM解析器遵循DOM Level 1和Level 2规范,允许Java开发者以类似的方式处理XML。 **手册内容概览**: 这份"DOM中文参考手册"可能涵盖了以下主题: - DOM基本概念和术语 - 节点的类型和操作 - DOM树的构建和...

    DOM Specification

    DOM Level 1 规范是理解现代 Web 技术的基础之一,它定义了处理文档的一套标准方法。通过对 DOM 的掌握,开发者可以更加灵活地控制网页内容和结构,实现动态交互效果。随着技术的发展,虽然出现了更多高效处理文档的...

    js DOM编程

    JavaScript DOM编程是Web开发中的核心技能之一,它允许开发者通过脚本语言操作HTML或XML文档的结构、内容和样式。DOM(文档对象模型)是一种标准的接口,将网页内容表示为一个可编程的对象树,使得JavaScript或其他...

    Dom文档对象模型-2010版

    9. **DOM API**: `DOM Level 1`, `DOM Level 2`, `DOM Level 3`分别定义了一系列API,涵盖了文档的加载与交互、样式操作、事件处理等多个方面,提供了丰富的功能供开发者使用。 10. **跨浏览器兼容性**: 不同的...

    9.DOM对象.zip

    1. **节点(Node)**:任何在DOM树中的元素都是一个节点,包括元素节点、属性节点、文本节点等。每个节点都有自己的属性和方法,如`nodeName`、`nodeValue`、`parentNode`等。 2. **选择节点(Selecting Nodes)**...

    DOM文档对象中文手册(chm).rar

    - **节点(Node)**: DOM将整个文档视为一系列相互关联的节点,每个节点代表文档的一个部分,如元素、属性、文本等。 - **树状结构**: 文档中的所有节点形成一个层次结构,类似于一棵倒置的树,称为DOM树。 - **...

    Dom文档对象模型2010版(CHM格式)

    在“Dom文档对象模型-2010版.chm”这个压缩文件中,用户可以找到关于DOM2010版的详细规范和指南。CHM(Compiled HTML Help)是微软开发的帮助文件格式,它将一系列HTML页面打包成一个文件,便于阅读和检索。如果在...

    DOM文档对象模型中文参考手册.rar

    1. **节点类型**:DOM中的节点有多种类型,如元素节点(Element Node)、属性节点(Attribute Node)、文本节点(Text Node)和文档节点(Document Node)。元素节点代表HTML或XML文档中的标签,如`&lt;div&gt;`;属性节点...

    DOM手册

    8. **DOM Level和版本**:DOM有多个级别,如DOM Level 1、Level 2和Level 3,每个级别扩展了新的功能,例如Level 2引入了CSS样式处理,Level 3增加了更多的事件和XML处理。 9. **XML DOM**:除了HTML,DOM也用于...

    DOM文档对象模型

    10. **学习资源**:`Dom文档对象模型-2010版.chm`可能是关于DOM的一个参考资料,`.chm`是Windows的帮助文件格式,包含详细的DOM信息;`说明.htm`可能提供了关于如何使用这些资料的指导;`aspjzy.com.txt`可能是相关...

    Dom4解析XML数据示例

    本篇将深入探讨如何使用DOM4(Document Object Model Level 4)解析XML数据,以实现高效的数据处理。 DOM4是W3C发布的DOM标准的最新版本,它提供了更强大的功能和改进,使得开发者可以更方便地处理XML文档。DOM是一...

    DOM参考手册 CHM格式

    此外,文档可能还会涵盖高级主题,如事件处理、遍历DOM树、DOM Level 1、Level 2和Level 3的扩展功能,以及与CSS和XML的交互等。 总的来说,DOM是Web开发中不可或缺的一部分,理解并熟练掌握DOM可以帮助开发者创建...

    JS操作DOM元素属性和方法.pdf

    在Web开发中,操作DOM(文档对象模型)是进行动态网页设计的基本技能之一。文档对象模型(DOM)是一个跨平台和语言独立的接口,允许程序和脚本动态地访问和更新文档的内容、结构和样式。本知识点将详细介绍如何使用...

    zepto:node了一个

    1. **zepto.js**: 这是Zepto库的基础文件,包含了基本的选择器、DOM操作和事件处理等功能。它是整个库的核心,为其他模块提供基础支持。 2. **event模块**: 用于处理DOM事件,如绑定、触发和移除事件监听器。它使得...

Global site tag (gtag.js) - Google Analytics