document.getelementsbytagname()方法的返回值中取出某个特定的元素。一开始以为它的返回值是一个数组,结果,大错特错。它返回的是一个 dom 对象,可以遍历,有 length 属性,但不是数组。
证据在这里:
html code<script>
window.onload = function() {
var divs = document.getelementsbytagname("div");
document.getelementbyid("info").innerhtml = !!(divs instanceof array);
}
</script>
<div></div>
<div id="info"></div>
把它当array用的兄弟姐妹小心了。
既然不是array,那么它到底是什么呢?
继续探索之:
html code<script>
window.onload = function() {
var divs = document.getelementsbytagname("div");
document.getelementbyid("info").innerhtml = object.prototype.tostring.call(divs);
}
</script>
<div></div>
<div id="info"></div>
在各浏览器中打开:
ie: [object object]
firefox:[object htmlcollection]
chrome/safari /opera:[object nodelist]
这个结果让人很纠结,5 个浏览器3种结果,其中 ie 和firefox貌似不太合群。
无奈,干脆去查查标准。
w3c dom3中 document.getelementsbytagname() 方法的返回值
getelementsbytagname() 是 w3c 从 dom1就引进的获取拥有相同标签名称的一组元素的方法。而在 dom2 和 dom3 保留了这个接口。
它的返回值是一个 nodelist。
一下是它的接口说明:
c/c++ codeinterface element : node {
...
nodelist getelementsbytagname(in domstring name);
...
}
首页 1 2 3 末页