第十章
1、 DOM1级定义了一个Node接口,以Node类型实现(除IE以外),为了确保跨浏览器兼容,最好用nodeType属性与数字数值进行比较(someNode. nodeType==1),来检查节点的类型。检查节点类型,如果是一个元素,保存NodeName的值,对元素节点来说,NodeName保存的是元素的标签名,NodeValue的值始终为null。
2、 每个节点都有一个childNodes属性,其中保存着一个NodeList对象【类数组,有length属性[someNode. childNodes. length],但不是Array】,访问保存在NodeList中的节点可以通过方括号【someNode. childNodes[0]】或者通过item()【someNode. childNodes.item(0)】。
ps::::::对arguments使用 Array.prototype.slice可以将其转换成数组。
在IE8以上可用将NodeList转换成数组:
Array.prototype.slice.call(someNode. childNodes,0)
所有浏览器适用的:
function converToArray(node){ var array = null; try{ Array.prototype.slice.call(someNode. childNodes,0); }catch(e){ array = new Array(); for (var i=0,;i) { array.push(node[i]); } } }
1、 hasChildNodes()方法当查询到有一个或者多个子节点的情况下会返回true,所有节点的最后一个属性都是ownerDocument,该属性指向表示整个文档的文档节点。
2、 操作节点:
1) firstChild和lastChild:父节点的第一个和最后一个节点
2) 向childNodes列表的末尾添加一个节点,不会删除节点:appendChild(newNode)
3) 向childNodes列表的特定位置添加一个节点,不会删除节点:insertBefore(newNode,插入位置)
4) 向childNodes列表的特定位置替换一个节点:replaceChild (newNode,插入位置)
5) 向childNodes列表移除节点:removeChild (移除位置)
6) 所有类型的节点都有的:cloneNode()方法接受一个布尔值参数,true时深复制,复制节点和整个子节点树,false时浅复制,只复制节点本身。。。。normalize()用来处理文档树中的文本节点。
3、 document类型:
1) document.documentElement;à
2) document.bodyà
3) document.doctype浏览器之间略有不同
4) document.title
5) 取得完整的URL:document.URL
取得域名:document.domain
取得来源页面的URL:document.referrer
6) 查找元素:
(1) document.getElementById(id)【如果有多个相同的ID,只返回第一次出现的元素,在IE7及之前的版本,name的特性与给定ID匹配的表单元素(input、textarea、button、select)也会被返回】
(2) document.getElementByTagName()【返回集合,获得集合中的项可以通过nameItem()也可以通过方括号
eg:
var imgs = document.getElementsByTagName("img");
var myImg = imgs.namedItem("myImg");
或者
var myImg = imgs["myImg"];
】
(3) document.getElementByName()
(4) document.anchors【所有带有name属性的元素】
(5) document.link【所有带有href属性的元素】
(6) document.applets【
(7) document.forms【