DOM下的节点属性和操作小结

  属性:

  1 .nodeName

  节点名称,相当于tagName.属性节点返回属性名,文本节点返回#text。nodeName,是只读的。

  2 .nodeType

  值:1,元素节点;2,属性节点;3,文本节点。nodeType是只读的。

  3 .nodeValue

  返回一个字符串,指示这个节点的值。元素节点返回null,属性节点返回属性值,文本节点返回文本。nodeValue可读可写,这是对元素节点不能写。一般只用于设置文本节点的值。

  4 .childNodes

  返回子节点数组。文本和属性节点的childNodes永远是null。可以用hasChildNodes()来判断是否有子节点。只读属性,要删除添加节点可不能用操作childNodes数组的办法呃。

  5 .firstChild

  返回第一个子节点。文本和属性节点没有子节点,会返回一个空数组,这是针对这二位的特殊待遇。对于元素节点,若是没有子节点会返回null.有一个等价式:firstChild=childNodes[0].

  6 .lastChild

  返回最后一个子节点。返回值同firstChild,三方待遇参考上面。有一个等价式:lastChide=childNodes[childNodes.length-1].

  7 .nextSibling()

  返回节点的下一个兄弟节点。如果没有下一个兄弟节点的话,返回null。只读属性,不可以更改应用。

  8 .previousSibling()

  返回节点的上一个兄弟节点。同上。

  9 .parentNode()

  返回节点的父节点。document.parentNode()返回null,其他的情况下都将返回一个元素节点,因为只有元素节点拥有子节点,出了document外任何节点都拥有父节点。parentNode(),又是一个只读的家伙。

  操作:

  1. 创建节点

  createElement('tagName');

  如:var oP=document.createElement('p');创建了一个<p></p>标签。

  2. 创建文本节点

  createTextNode('text');

  如:var oText=document.createTextNode('This is a paragh!');

  3. 附加子节点

  appendChild(o);其中o为节点对象。

  如:document.body.appendChildNode(o);在body末尾追加

  document.forms[0].appendChildNode(o);在form表单末尾追加

  oP.appendChildNode(o);在元素内部的末尾追加,其总oP为节点对象。

  4. 创建文档片断

  createDocumentFragment();

  如:var oF=document.createDocumentFragment();

  5. 删除节点

  removeChild(oP);

  如:document.body.removeChild(oP),从body中移除oP节点对象。

  6. 替换节点

  replaceChid(newOp,targetOp);将目标节点targetOp替换为newOp

  如:document.body.replayChild(oPa,oPb).ps:怎会这样特殊?源和目地操作数都是参数,为何调用者是document.body?记住先,别多管。——被替换的必须是body的子节点,可以用其他element替代document.body,前提一样,被替换的要是这个element的子节点。

  7. 插入节点

  insertBefor(newOp,targetOp);

  insertAfter(newOp,targetOp);

  8. 设置或得到属性节点

  setAttribute('key','value');

  getAttribute('key','value')

  9.复制节点。

  cloneNode(true/false)