DOM 对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DOM 对象相关的知识,希望对你有一定的参考价值。
DOM == document object model
document 对象是唯一同时属于 BOM 和 DOM 的
rows 是一种DOM集合,不是数组,所以没有sort() 函数。
NodeList NamedNodeMap :
document.all == document.getElementByTagName("*"); 取得document中所有元素
ie6 在使用getElementByName() 和 getElementById() 时都会同时匹配 id 和 name 属性,要注意
ie 在使用 setAttribute() 有可能出错
所以尽可能使用 img.src 形式取代 img.getAttribute("src")
Dom对象是host object,host 对象在ie8以及之前版本是通过COM实现的,而不是JScript
所以document.createElement 等Dom 方法是COM 对象的实例,因此typeof document.createElement 返回 object
每一个node节点都有自己的ownerDocument属性,如果将不同ownerDocument属性append到结构中会产生错误,需要使用importNode()方法。
注意直接定义在node上的属性,在标准浏览器和ie9,10中用getAttribute取不到,得到的结果是null
比如div.aa = 10,用div.getAttribute(‘aa‘)得到的是null,需要用div.aa或者div[‘aa‘]这样来取
Nodelist是类数组对象,但不是Array的实例( 转化为数组的话[].slice.call(eleList) ),当然用不了array的方法啦,同时它是动态更新的,实时变化的
function convertToArray(nodes) {
var array = null;
try {
array = Array.prototype.slice.call(nodes, 0); //non-IE and IE9+,throw an error because a NodeList is implemented as a COM object and thus cannot be used where a JScript object is necessary
}
catch (ex) {
array = new Array();
for (var i=0, len=nodes.length; i < len; i++) {
array.push(nodes[i]);
}
}
return array;
}
以上是关于DOM 对象的主要内容,如果未能解决你的问题,请参考以下文章