属性

nodeType

  1. Node.prototype.nodeType
  2. 属性返回一个整数值,表示节目类型

Node接口 - 图1

nodeName

  1. nodeName返回节点的名称

Node接口 - 图2

nodeValue

  1. 返回字符串,表示当前节点本身的文本值,该属性可读写
  2. 只有文本节点(text),注释节点(comment),属性节点(attr)有文本值
  3. 其他类型节点返回null

    textContent

  4. textContent属性返回当前节点和它所有后代节点的文本内容

  5. 会自动忽略当前节点内部的HTML标签,返回所有文本内容
  6. 设置该属性的值时,会自动对HTML标签转义
  7. 文本节点、注释节点、属性节点的textContent值和nodeValue值相同
  8. 其他类型节点会将每个子节点的内容连接在一起返回,如果没有内容返回null
  9. documentdoctypetextContent属性为null
  10. 要读取整个文档的内容,使用document.documentElement.textContent

    baseURI

  11. 返回一个字符串,表示当前网页的绝对路径

  12. document.baseURI
  13. 可以使用<base>标签改变属性的值

    ownerDocument

  14. 返回当前节点所在的顶层文档对象,即document对象

    1. var d = p.ownerDocument;
    2. d === document; // true

    nextSibling

  15. 返回紧跟在当前节点后的第一个同级节点,没有则返回null

    previousSibling

  16. 返回当前节点前面的同级节点,没有则返回null

    parentNode

  17. 返回当前节点的父节点

  18. 父节点可能是:element、document、documentfragment
  19. document和documentfragement的父节点是null
  20. 生成后没有插入DOM树的节点,父节点也是null

    parentElement

  21. 返回当前元素的父元素节点

  22. 如果没有父元素节点或父节点类型不是元素节点,则返回null

    lastChild和firstChild

  23. 返回第一个或最后一个子节点,如果没有返回null

    childNodes

  24. 返回一个类数组的对象(NodeList集合),包含当前节点的所有子节点

  25. 除了元素节点外,返回值还包含文本节点和注释节点
  26. 如果当前节点不包含任何子节点,返回空的结合

    isConnected

  27. 返回一个布尔值,表示当前节点是否在文档中

    方法

    appendChild

  28. appendChild接收一个节点对象作为参数,将其作为最后一个子节点,插入当前节点

    1. var p = document.createElement("p");
    2. document.body.appendChild(p);
  29. 如果参数是DOM中已经存在的节点,appendChild方法会将其从原来的位置,移动到新位置

    1. var div = document.getElementById("myDiv");
    2. document.body.appendChild(div);
  30. 如果参数是DocumentFragment节点,那么插入的是DocumentFragment所有子节点,而不是DocumentFragment节点本身,返回是一个空的DocumentFragment节点

    hasChildNodes

  31. hasChildNodes方法返回一个布尔值,表示当前节点是否有子节点

    cloneNode

  32. cloneNode方法用于克隆一个节点

  33. 该方法接收一个布尔值为参数,表示是否同时克隆子节点
  34. 返回值是一个克隆出的新节点
  35. 克隆后的节点会拷贝该节点的所有属性,但是会丧失addEventListener方法和on-属性
  36. 该方法返回的节点不在文档中
  37. 克隆一个节点后,DOM有可能出现两个相同的id属性

    insertBefore

  38. insertBefore用于将某个节点插入父节点内部的指定位置

    1. var insertedNode = parentNode.insertBefore(newNode,referenceNode);
  39. 如果要插入的节点是当前DOM现有的节点,则将该节点从原有的位置移除,插入新的位置

  40. 如果要插入的节点是DocumentFragment类型,那么插入的将是DocumentFragment的所有子节点,而不是DocumentFragment节点本身,返回值将是一个空的DocumentFragment节点

    removeChild

  41. removeChild方法接收一个子节点作为参数,用于从当前节点移除该子节点,返回值是移动的子节点

    1. var divA = document.getElementById("a");
    2. divA.parentNode.removeChid(divA);
  42. 移除当前节点的所有子节点

    1. var elem = document.getElementById("top");
    2. while(elem.firstChild){
    3. elem.removeChild(elem.firstChild);
    4. }

    replaceChild

  43. 用于将一个新的节点替换当前节点的某一个子节点

    1. var repalceNode = parentNode.replaceChild(newChild,oldChild);
  44. replaceChild接收两个参数,第一个参数newChild是用来替换的新节点,第二个参数oldChild是将要替换走的子节点

  45. 返回值是替换走的那个节点oldChild

    1. var divA = document.getElementById("divA");
    2. var newSpan = document.createElement("span");
    3. newSpan.textContent = "hello world";
    4. divA.parentNode.replaceChild(newSpan,divA);

    contains

  46. contains方法返回一个布尔值,表示参数节点是否满足以下三个条件之一:

  • 参数节点为当前节点
  • 参数节点为当前节点的子节点
  • 参数节点为当前节点的后代节点

    isEqualNode和isSameNode

    isEqualNode

  1. 返回一个布尔值,用于检查两个节点是否相等,所谓相等的节点,指两个节点的类型相同、属性相同、子节点相同

    isSameNode

  2. 返回一个布尔值,表示两个节点是否为同一个节点

    normalize

  3. 用于清理当前节点内部的所有文本节点。

  4. 会去重空的文本节点并合并毗邻的文本节点

    getRootNode

  5. getRootNode返回当前节点所在文档的根节点document

  6. ownerDocument属性相同