HTML node相关的一些资料整理

  一、HTML DOM是一个树型的对象

  二、每个node都包含该节点的某些信息,分别是:

   1. nodeName

     nodeName 属性含有某个节点的名称。

  * 元素节点的 nodeName 是标签名称

  * 属性节点的 nodeName 是属性名称

  * 文本节点的 nodeName 永远是 #text

  * 文档节点的 nodeName 永远是 #document

     注释:nodeName 所包含的 XML 元素的标签名称永远是大写的

   2. nodeValue

  对于文本节点,nodeValue 属性包含文本。

  对于属性节点,nodeValue 属性包含属性值。

  nodeValue 属性对于文档节点和元素节点是不可用的。

   3. nodeType

  nodeType 属性可返回节点的类型。

  最重要的节点类型是:

  

元素类型 节点类型
元素 1
属性 2
文本 3
注释 8
文档 9

  

三、修改节点

  1. [newfathernode].appendChild([childnode])

    此操作会更改newfathernode和childnode之间的关系为父子节点,并且会自动导致childnode的oldfathernode不在拥有此childnode节点.

  2. [newfathernode].removeChild([childnode])

  四、程序示例

  

复制代码 代码如下:

  <html>

  <body>

  <div id="div1">

  <div id="div3">

  </div>

  </div>

  <div id="div2">

  </div>

  <script>

  function $id(id){

  return document.getElementById(id);

  }

  function CountNodes(arr){

  var len = arr.length;

  var i = 0;

  while(len--){

  (arr[len].nodeType==1) && i++;

  }

  return i;

  }

  window.onload = function(){

  alert(CountNodes($id("div2").childNodes));

  $id("div2").appendChild($id("div3"));

  alert(CountNodes($id("div1").childNodes));

  alert(CountNodes($id("div2").childNodes));

  }

  </script>

  </body>

  </html>