[TOC]
DOM API
Selector API
- 这个扩展其实在标准未制定之前,已经在社区里使用。
- 通过CSS选择器的模式匹配,来遍历选择节点。
-
querySelector()Document和Element类
tip现如今网页DOM实时变化,但是该方法获取的DOM节点不是实时的,因此用的很少
querySelectorAll()Document和Element类
-
matches()Element类
/** *目的:运用matches() *参数:CSS选择器字符串 *功能:判断某个元素节点是不是匹配的元素节点 *返回值:boolean *总结:没啥用,了解即可 */ var oDiv2 = document.querySelectorAll('div')[0]; console.log(oDiv2.matches('div')); //这句话的意思是oDiv2是div节点,同匹配的节点是不是一样的。 /** 输出打印结果: true */
Element Traversal API支持IE9及以上
为了解决Node类里的节点遍历,会将元素间的空格解析成text节点。在Element类中添加了以下属性,来解决此问题。
firstElementChild属性
lastElementChild属性
nextElementSibling属性
previousElementSibling属性
childElementCount属性
<body> <div id='div1'> <!-- 注释 --> <h1>标题</h1> <div id='div2'> <span>我的前端学习之路</span> </div> </div> <h2>标题2</h2> <script> var oDiv2 = document.querySelectorAll('div')[0]; console.log(oDiv2.firstElementChild); console.log(oDiv2.lastElementChild); console.log(oDiv2.nextElementSibling); console.log(oDiv2.previousElementSibling); console.log(oDiv2.childElementCount); </script> </body> /** 输出打印结果: <h1>标题</h1> <div id='div2'>...</div> <h2>标题2</h2> null 2 */
DOM HTML5
CSS类扩展支持IE9及以上
class属性其实是为了将HTML与CSS关联起来的属性。DOM扩展方法和属性以便于对class属性的操作。
getElementClassName()Document类
-
classList属性Element类
目的就是为了能够方便处理class属性值中的多个类名。
- 该属性指向DOMTokenList类实例化的对象。
有了这个属性className就很少用了 ```javascript //算法很复杂,来删除一个类名。那么增加类名,替换类名也差不多很复杂
<h1>标题</h1>
标题2
/* 输出打印结果: “title current” /
//通过classList集合类型来操作类名,更加方便