标签:
一、选择器
document.getElementById
document.getElementsByTagName
document.getElementsByClassName(ie9)
document.getElementsByName
document.querySelector
document.querySelectorAll
querySelector和getElementBy系列的不同之处:
1. querySelector 属于W3C的Selectors API 规范,getElementBy 属于W3C的DOM API 规范
2. querySelector 被IE 8+浏览器支持,getElementsByClassName 被IE 9+支持
3. querySelector接收CSS选择器作为参数
4. querySelectorAll 返回的是一个static node list,而getElementsBy 返回的是一个 live node list。下面的demo 2将导致无限循环
1 var ul = document.querySelectorAll(‘ul‘)[0], 2 lis = ul.querySelectorAll("li"); 3 for(var i = 0; i < lis.length ; i++){ 4 ul.appendChild(document.createElement("li")); 5 } 6 7 // Demo 2 8 var ul = document.getElementsByTagName(‘ul‘)[0], 9 lis = ul.getElementsByTagName("li"); 10 for(var i = 0; i < lis.length ; i++){ 11 ul.appendChild(document.createElement("li")); 12 }
二、DOM对象的属性
1. getAttribute和setAttribute可以设置dom对象的属性,支持IE 8+浏览器。通过dom.attributes.nodeValue同样可以获取属性的值,兼容性未知
2. parentNode可以获取父节点
3. firstChild、lastChild、childNodes可以获取子节点
4. nextSibling获取已知节点的下一个节点,previousSibling获取已知节点的上一个节点
三、DOM对象的方法
1. appendChild() 添加节点
2. cloneNode() 复制节点
3. insertBefore() 在当前节点的指定子节点之前插入
4. removeChild() 删除节点
5. replaceChild() 替换节点
四、事件
1. dom 0级事件(dom.onclick)只能绑定一次,而dom 2级事件(addEventListener)可以绑定多次
2. 当同一类型事件绑定多次时,addEventListener按照添加顺序执行。attachEvent按添加顺序倒序执行
3. 在addEventListner中,通过event对象拥有以下属性、方法
4. 在attachEvent中,event对象拥有以下属性、方法
夸浏览器的事件处理程序
1 var EventUtil = { 2 3 addHandler: function(element, type, handler) { 4 if (element.addEventListener) { 5 element.addEventListener(type, handler, false) 6 7 } else if (element.attachEvent) { 8 element.attachEvent(‘on‘ + type, handler) 9 10 } else { 11 element[‘on‘ + type] = handler 12 } 13 }, 14 15 removeHandler: function(element, type, handler) { 16 if (element.removeEventListener) { 17 element.removeEventListener(type, handler, false) 18 19 } else if (element.detachEvent) { 20 element.detachEvent(‘on‘ + type, hander) 21 22 } else { 23 element[‘on‘ + type] = null 24 } 25 } 26 }
标签:
原文地址:http://www.cnblogs.com/sunken/p/4388866.html