当前位置:首页 > 开发 > Web前端 > 前端 > 正文

getElementsByName 和 getElementById 方法在IE 和Google FF浏览器区别

发表于: 2015-01-20   作者:chenbowen00   来源:转载   浏览次数:
摘要: 今天在测试的时候发现getElementsByName在IE中好使,在google中不好使,后面发现传入的值是节点的ID,后面查询资料发现如下: 对于ID & Name 按最经典的解释的:“ID 就如同我们的身份证,Name就如同我们的名字”,也就是说,在一个html文档中ID是唯一的,但是Name是可以重复的,就象我们的人名可以重复但是身份证确实全中国唯一的(PS:据说有重复的^_^)
今天在测试的时候发现getElementsByName在IE中好使,在google中不好使,后面发现传入的值是节点的ID,后面查询资料发现如下:
对于ID & Name 按最经典的解释的:“ID 就如同我们的身份证,Name就如同我们的名字”,也就是说,在一个html文档中ID是唯一的,但是Name是可以重复的,就象我们的人名可以重复但是身份证确实全中国唯一的(PS:据说有重复的^_^)
但是对于document.getElementsByName 与document.getElementById 这个两个方法,IE中是并没有严格区分 ID 与 Name 的,比如:
<script type="text/javascript">
function useGetElementsByNameWithId(id) {
var eles = document.getElementsByName('ID_A');
var msg = '使用 getElementsByName 传入 ID:得到:'
if(eles.length > 0) {
msg += " Name " + eles[0].id;
}
alert(msg);
}
function usegetElementByIdWithName(name) {
var ele = document.getElementById(name);
var msg = '使用 getElementById 传入 Name 得到:';
if(ele) {
msg += " ID " + ele.id;
}
alert(msg);
}
</script><input id="ID_A" name="Name_A" type="button" value="使用 getElementsByName 传入 ID" onclick="useGetElementsByNameWithId(this.id)" />
<input id="ID_B" name="Name_B" type="button" value="使用 getElementsByName 传入 Name" onclick="usegetElementByIdWithName(this.name)" />IE中通过 getId 传入 name 同样可以访问到目标元素,而通过 getName 传入 Id 也可以访问到目标元素。
MSDN中对两个方法的解释:
getElementById Method
--------------------------------------------------------------------------------
Returns a reference to the first object with the specified value of the ID attribute.
Remarks
When you use the getElementsByName method, all elements in the document that have the specified NAME or ID attribute value are returned.
Elements that support both the NAME and the ID attribute are included in the collection returned by the getElementsByName method, but not elements with a NAME expando.
MSDN确实对 getElementsByName 方法做了说明:“具有指定 Name 或者 ID 属性的元素都会返回”,但是
getElementById 方法却没有说明,然而内部实现同 getElementsByName 是一样的。
而对于Google,看来更忠实W3C标准,上面的测试代码是没有办法返回目标元素的。

getElementsByName 和 getElementById 方法在IE 和Google FF浏览器区别

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
1 浏览器内核简介 Trident
在操作dom遇到问题,使用childNodes取得Div节点的Div子节点,IE浏览器中没有任何问题,而FF浏览器会
在操作dom遇到问题,使用childNodes取得Div节点的Div子节点,IE浏览器中没有任何问题,而FF浏览器会
在操作dom遇到问题,使用childNodes取得Div节点的Div子节点,IE浏览器中没有任何问题,而FF浏览器会
IE、FF、Safari、OP不同浏览器兼容报告 分类:UI前端設計 2011-12-05 17:01 323人阅读 评论(0) 收藏
有很多人评论着浏览器的好坏从它们的兼容性来考虑问题,说IE不好 或者FF兼容性差等等...但是归根结
文章引用地址:http://www.iefans.net/shanchu-ie9-wenjianjia/ 作者:iefans --------------------
从IE8浏览器开始,微软向 Web 标准进行靠拢,以便让各种浏览器可以更好的兼容网站中使用的代码,开
  据Google Chrome博客报道,Google为了争夺IE浏览器的市场份额,推出了一个专门针对IE 6,7,8等
给FF添加了IE专有的属性和方法: <script language="JavaScript" type="Text/JavaScript"> &l
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号