虽然如今咱们在开发中已经用不到本身操做
DOM
了,以前有JQ
,如今更是有VUE
、REACT
两大框架供咱们使用,可是咱们也有必要了解下,关于原生JS
中的DOM
操做问题。node
DOM
标签获取的方式ID
获取——元素对象document.getElementById([ID])
ID
,得到这个元素对象document
是获取元素的上下文(获取元素的范围)getElementById
方法的上下文只能是document
:
拿
div
举栗子,div
是HTMLDivElement
类的一个实例,document
是HTMLDocument
的实例。数组他们的继承关系:浏览器
- HTMLDivElement > HTMLElement > Element > Node > EventTarget
- HTMLDocument > Document > Node > EventTarget
咱们都知道子类继承父类,子类就可使用父类的属性和方法。框架
- 他们相同的继承关系是
Node
和EventTarget
,也就是说他们均可以使用Node
和EventTarget
上的方法。- 如
Node
上的nodeName
、parentNode
等,和EventTarget
上的addEventListener
等。getElementById
只在Document
类的原型上,HTMLDivElement
没有继承Document
类,因此div
不能使用getElementById
方法。后面要说到的
getElementsByTagName
方法则是即在Document
类的原型上也在Element
类的原型上,因此div
和document
均可以使用getElementsByTagName
方法。code
[context].getElementsByTagName([标签名])
HTMLCollection
元素集合(类数组:数字做为索引,length
表明长度)CLASS
类名获取——元素集合[context].getElementsByClassName([样式类])
IE6~8
低版本浏览器NAME
属性名获取——元素集合document.getElementsByName([NAME 属性名])
Name
属性值,在整个文档中获取一组元素集合IE9
如下只对表单元素做用HTML
——元素对象document.documentElement
HTML
元素对象HTML
是页面的根节点BODY
——元素对象document.body
HEAD
——元素对象document.head
CSS选择器
获取——元素对象[context].querySelector([选择器])
IE6~8
低版本浏览器[context].querySelectorAll([选择器])
在不考虑兼容的状况下,这8/9两种方法就足以获取咱们须要的元素对象和集合了cdn