getElementsByName在IE8中的问题

westdo 2010-07-19 03:45:53
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<script language="JavaScript">
<!--
function getElements()
{
var t=document.getElementsByName('show1');
alert(t.length);
}
//-->
</script>
</head>

<body>

<table>
<tr>
<td>1sdfsdfsdf</td>
</tr>
<tr name="show1" style="display:none;">
<td>2</td>
</tr>
<tr name="show1" style="display:none;">
<td>3</td>
</tr>
<tr name="show1" style="display:none;">
<td>4</td>
</tr>

</table>
</div>
  <input type="button" onclick="getElements();" value="test" />
</body>
</html>
这段代码,在chrome,firefox,opera,都能输出3,但是在ie8中输出0,是ie8的问题吗,怎么避免?
...全文
317 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hoojo 2010-07-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 westdo 的回复:]

问题解决了.
我用getElementsByTagName方法,取到所有tr元素,再用tr.name=='传入参数' 可以得到getElementsByName类似的效果
function getElements()
{
var n=0;
var t=document.getElementsByTagName('tr');
//alert(t.length);
for(i=0;i<……
[/Quote]
难道是ie8不取隐藏的标签,汗~~
westdo 2010-07-19
  • 打赏
  • 举报
回复
问题解决了.
我用getElementsByTagName方法,取到所有tr元素,再用tr.name=='传入参数' 可以得到getElementsByName类似的效果
function getElements()
{
var n=0;
var t=document.getElementsByTagName('tr');
//alert(t.length);
for(i=0;i<t.length;i++)
{
if(t[i].name="show1")
n++;
}
alert(n);
}
kyzy_yy_pm 2010-07-19
  • 打赏
  • 举报
回复
浏览器自身的问题,不同情况不同处理
WebAdvocate 2010-07-19
  • 打赏
  • 举报
回复

87,955

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧