FireFox下getElementsByTagName()不好用,有人知道为什么吗?

zhl1015 2008-04-24 02:55:12
var inputAll = document.getElementsByTagName("INPUT");
alert(inputAll.length);

IE输出5,FireFox输出0,我晕了,什么破浏览器啊

怎么解决呀??
...全文
3538 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yugiking 2008-05-15
  • 打赏
  • 举报
回复
请问,FF要怎么获取自定义的标签?

我在页面定义了一些自己的标签 如 <abc>xxx</abc>

用 document.getElementsByTagName("abc");
在ie可以找到,但在ff下找不到
zhl1015 2008-04-25
  • 打赏
  • 举报
回复
晕了,没写<FORM>标签就不行,在<INPUT>标签外部套上<FORM>标签就OK了

FF验证得没什么必要吧,我用的是document.getElementsByTagName(),又不是form.getElementsByTagName(),真受不了了
jackyBody 2008-04-25
  • 打赏
  • 举报
回复
代码1

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档 </title>
<style type="text/css">
mytag{
border:1px solid #cccccc;
width:100px;
height:20px;
}
</style>

<script> alert("INPUT Count:"+document.getElementsByTagName("INPUT").length); alert("MyTag Count:"+document.getElementsByTagName("mytag").length); </script>
</head>
<body>
<input type="text" id="text1" value="1"/>
<input type="text" id="text2" value="2"/>
<input type="text" id="text3" value="3"/>
<input type="text" id="text4" value="4"/>
<mytag>1 </mytag>
<mytag>2 </mytag>
<mytag>3 </mytag>
<mytag>4 </mytag>


代码2


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档 </title>
<style type="text/css">
mytag{
border:1px solid #cccccc;
width:100px;
height:20px;
}
</style>
</head>
<body>
<input type="text" id="text1" value="1"/>
<input type="text" id="text2" value="2"/>
<input type="text" id="text3" value="3"/>
<input type="text" id="text4" value="4"/>
<mytag>1 </mytag>
<mytag>2 </mytag>
<mytag>3 </mytag>
<mytag>4 </mytag>
<script>
alert("INPUT Count:"+document.getElementsByTagName("INPUT").length); alert("MyTag Count:"+document.getElementsByTagName("mytag").length); </script>
jackyBody 2008-04-25
  • 打赏
  • 举报
回复
实际上是这样的:
应该是两个浏览器事件机制不一样 ,IE浏览器只支持事件冒泡,Fx是DOM兼容很好的浏览器 ,不仅仅支持冒泡还支持捕获。


楼主可以做测试,你可以把你的js代码放在文档的最后 ,和放在head区域分别 测试下



<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档 </title>
<style type="text/css">
mytag{
border:1px solid #cccccc;
width:100px;
height:20px;
}
</style>

<script> alert("INPUT Count:"+document.getElementsByTagName("INPUT").length); alert("MyTag Count:"+document.getElementsByTagName("mytag").length); </script>
</head>
<body>
<input type="text" id="text1" value="1"/>
<input type="text" id="text2" value="2"/>
<input type="text" id="text3" value="3"/>
<input type="text" id="text4" value="4"/>
<mytag>1 </mytag>
<mytag>2 </mytag>
<mytag>3 </mytag>
<mytag>4 </mytag>




<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档 </title>
<style type="text/css">
mytag{
border:1px solid #cccccc;
width:100px;
height:20px;
}
</style>
</head>
<body>
<input type="text" id="text1" value="1"/>
<input type="text" id="text2" value="2"/>
<input type="text" id="text3" value="3"/>
<input type="text" id="text4" value="4"/>
<mytag>1 </mytag>
<mytag>2 </mytag>
<mytag>3 </mytag>
<mytag>4 </mytag>

<script> alert("INPUT Count:"+document.getElementsByTagName("INPUT").length); alert("MyTag Count:"+document.getElementsByTagName("mytag").length); </script>

zhl1015 2008-04-25
  • 打赏
  • 举报
回复
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

这个我倒是没加,那就是这个的问题了~~

没加这个文档就不是个DOM了,真郁闷.
eduyu 2008-04-25
  • 打赏
  • 举报
回复
用firebug,或jash。
用alert这么调试很不方便
  • 打赏
  • 举报
回复
先弄清楚了要不别乱说,火狐没有那么烂
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
mytag{
border:1px solid #cccccc;
width:100px;
height:20px;
}
</style>
</head>
<body>
<input type="text" id="text1" value="1"/>
<input type="text" id="text2" value="2"/>
<input type="text" id="text3" value="3"/>
<input type="text" id="text4" value="4"/>
<mytag>1</mytag>
<mytag>2</mytag>
<mytag>3</mytag>
<mytag>4</mytag>
<script> 
alert("INPUT Count:"+document.getElementsByTagName("INPUT").length);
alert("MyTag Count:"+document.getElementsByTagName("mytag").length);
</script>

</body>
</html>
「已注销」 2008-04-24
  • 打赏
  • 举报
回复
document.getElementsByClassName = function(_className)
...{ //根据class获得对象集合
var aimObj = [];
var elements = document.getElementsByTagName("*") ;//取得所有元素的集合
//alert(elements.length);
for(var i=0;i <elements.length;i++)
...{
if(elements[i].className==null) continue;
if(elements[i].className == _className)
...{
aimObj.push(elements[i]);
}
}
return aimObj;

}

var outerDiv = document.getElementsByClassName("view view-case-view-all")[0];//取得class="view view-case-view-all"的第一个对象
alert(outerDiv.outerHTML);
lawrendc 2008-04-24
  • 打赏
  • 举报
回复
没遇到过
贴代码

87,904

社区成员

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

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