DOM

1、DOM:Document  Object  Model

2、DOM定义了表示和修改文档所需的方法。DOM对象即为宿主对象,由浏览器厂商定义,用来操作HTML和XML功能的一类对象的集合。也有人称DOM是对html以及XML标准编程的接口

3、查看元素节点、

  (1)document代表整个文档

  (2)document.getElementById( 'only' )       标签

  (3)document.getElementsByTagName( 'div' )  类数组  实时更新的

  (4)document.getElementsByClassName( 'demo' )  类数组  实时更新的  ie8和ie8以下版本中没有此方法,可以多个class一起

  (5)document.querySelector( )  标签  不是实时的

  (6)document.querySelectorAll( )  类数组  不是实时的

4、遍历节点树

  (1)parentNode:父节点(最顶端的parentNode为#document)

  (2)childNodes : 子节点们

  (3)firstChild : 第一个子节点

  (4)lastChild :最后一个子节点

  (5)nextSibling : 相邻的后一个兄弟节点

  (6)previousSibling : 相邻的前一个兄弟节点

5、基于元素节点树的遍历

  (1)parentElement:返回点前元素的父元素节点(IE不兼容)

  (2)children:只返回当前元素的元素子节点

  (3)node.childElementCount === node.children.length : 返回当前元素节点的子元素节点个数

  (4)firstElementChild : 返回的是第一个元素节点(IE不兼容)

  (5)lastElementChild : 返回的是最后一个元素节点(IE不兼容)

  (6)nextElementSibling:返回上一个兄弟元素节点

  (7)previousElementSibling:返回下一个兄弟元素节点

6、节点的四个属性

  (1)nodeName:元素的标签名,以大写形式表示,只读

  (2)nodeValue:表示Text节点或Comment节点的文本内容,可读写

  (3)nodeType:表示该节点的类型,只读

  (4)attributes:表示该元素节点的属性集合

  节点的一个方法:Node.hasChildNodes( )  返回true或false

7、节点的类型

  (1)元素节点:1

  (2)属性节点:2

  (3)文本节点:3

  (4)注释节点:8

  (5)document:9

  (6)DocumentFragment:11

8、创建节点

  (1)创建元素节点

    document.createElement('div')

  (2)创建文本节点

    document.createTextNode('商品标题')

  (3)创建注释节点

    document.createComment('this  is  comment')

9、插入节点

  (1)appendChild

    向标签末端插入节点

    var  div  =  document.getElementByTagName('div')[0];

    var  text  =  document.createTextNode('hello  world');

    var  span  =  document.createElement('span');

    div.appendChild(text)

    div.appendChild(span)

    结果:

    <div>

      hello  world

      <span></span>

    </div>

  (2)insertBefore

    div.insertBefore(a, b)

    向div标签中的b标签前插入a节点

10、删除节点

  (1)removeChild( )

    div.removeChild( i )  // 删除div元素中的i节点,并返回i节点

  (2)remove( )

    div.remove( )  // 删除div元素,没有返回值

11、替换节点

  replaceChild

    div.replaceChild(new,  origin)  // 用new元素替换div元素中的origin元素,并返回origin元素

12、节点的属性

  (1)innerHTML

      div.innerHTML  =  123

  (2)innerText(火狐不兼容)、textContent(老版本IE不兼容)

    div.innerText  等同于  div.textContent

  (3)className

    div.className  // 获取class名

    div.className  =  'demo'  // 设置class名

13、节点的方法

  (1)setAttribute

    设置元素节点的属性

    div.setAttribute('class', 'demo')

  (2)getAttribute

    获取元素节点的属性

    div.getAttribute('class')

    

原文地址:https://www.cnblogs.com/cuishuangshuang/p/13283452.html