document.all与getElementById、getElementsByName、getElementsByTagName用法区别-getElementById

 

HTML DOM 定义了多种查找元素的方法,除了 getElementById() 之外,还有 getElementsByName() 和 getElementsByTagName()。

不过,如果您需要查找文档中的一个特定的元素,最有效的方法是 getElementById()。

不过要注意的是使用getElementById时对不同的浏览器执行的结果可能是不同的,以下链接有相关说明

http://blog.csdn.net/mmcgzs/archive/2007/03/25/1540250.aspx

以下是我测试所用的代码:

  1. <html>
  2. <head>
  3. <title>
  4. document.all test
  5. </title>
  6. <script language="javascript">
  7. function view()
  8. {
  9.     var obj = document.getElementById("ccc");
  10.     alert(obj.value);
  11.     obj = document.getElementById("aaa");
  12.     alert(obj.value);

  13. }
  14. </script>
  15. </head>
  16. <body>
  17. <form name="form1" id="f1">

  18. <!--<input type="text" name="aaa"  >-->
  19. <input type="text" name="aaa" id="ccc" >
  20. <input type="text" name="ccc" id="aaa">

  21. <input type="button" name="bbb" value="click" οnclick="view();">
  22. </form>
  23. </body>

  24. </html>
这个时候我在两个text中输入的值分别为:eee, www

IE中测试结果为:eee , eee

再看当我把<input type="text" name="aaa" id="ccc" >中的id去除时,也即上面代码使用注释中的内容时

我同样输入eee, www

IE中测试结果为:www ,eee

仔细分析上面两个测试的结果:得出结论是:每执行getElementById一次,会将web页面中的所有表单按顺序遍历一次,同时查找id,name两个值,如果存在所要找的id则不再继续查找,如果没有相应的id与之对应则看name值是否与之对应,如果有相应的name与之对应,则不再继续查找。也就是说:

   ie执行document.getElementById(elementName)的时候,返回的是第一个name或者id等于elementName的对象,并不是仅按照ID来查找的。


而同样的两个测试在firefox下第一个结果为eee,www,而第二个结果因为没有找到id="ccc"所以返回null


对于这个结果还可参见blog:

http://www.cnblogs.com/Jinglecat/archive/2006/10/18/532764.html

他还对getElementById与getElementByName进行了分析,值得一看。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值