【www.gdgbn.com--js教程】
ie中js getelementsbytagname无法获取元素bug
定义和用法
getelementsbytagname() 方法可返回带有指定标签名的对象的集合。
语法
document.getelementsbytagname(tagname)说明
getelementsbytagname() 方法返回元素的顺序是它们在文档中的顺序。
如果把特殊字符串 "*" 传递给 getelementsbytagname() 方法,它将返回文档中所有元素的列表,元素排列的顺序就是它们在文档中的顺序。
提示和注释
注释:传递给 getelementsbytagname() 方法的字符串可以不区分大小写。
更多详细内容请查看:http://www.111cn.net/wy/js-ajax/getelementsbytagname.htm
点击input[id=test]
ie6/7 : 抛异常
ie8/9 : 弹出 undefined
firefox/safari/chrome/opera :弹出 [object htmlinputelement]
当把 语句1 和 语句2 位置调换,则不重现。
当把 div.getelementsbytagname 换成 div.childnodes[0] 或 div.children[0] 时,亦不重现。
初步判断是ie中 getelementsbytagname 的实现问题,在 msdn 找到一段:
<script>
var html= "";
var div = document.createelement("div");
div.innerhtml = html;
var a = div.getelementsbytagname("input"); // 语句1
document.body.appendchild(div); // 语句2
document.getelementbyid("test").onclick = function() {
alert(a[0]);
};
</script>