当前位置:编程学习 > JS >>

ie中js getElementsByTagName无法获取元素BUG

ie中js getelementsbytagname无法获取元素bug

定义和用法
getelementsbytagname() 方法可返回带有指定标签名的对象的集合。

语法
document.getelementsbytagname(tagname)说明
getelementsbytagname() 方法返回元素的顺序是它们在文档中的顺序。

如果把特殊字符串 "*" 传递给 getelementsbytagname() 方法,它将返回文档中所有元素的列表,元素排列的顺序就是它们在文档中的顺序。
提示和注释
注释:传递给 getelementsbytagname() 方法的字符串可以不区分大小写。

更多详细内容请查看:http://www.zzzyk.com/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 找到一段:

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>ie中getelementsbytagname无法获取元素bug</title>
</head>
<body>
<input type="button" id="test" value="test">
<script>
 var html= '<input type="checkbox">';
 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>
</body>
</html>

补充:网页制作,js教程 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,