当前位置: 代码迷 >> Web前端 >> document.getElementById 与 document.all差异
  详细解决方案

document.getElementById 与 document.all差异

热度:182   发布时间:2012-09-18 16:21:42.0
document.getElementById 与 document.all区别?
document.all 是微软的东西,只被IE支持

document.getElementById 是公共标准,被目前的所有主流浏览器支持

document.getElementById ,document.all,在IE和Firefox下区别

IE下用 document.getElementById document.all都是可以的

但在Firefox下只能用document.getElementById,另外 innerText innerHTML 可以在IE下通过
但innerText在Firefox下是不起作用的 测试 发现

document.all是IE下面的document属下的所有元素的集合
可以通过document.all.length来看到document下面的元素数量
document.all(index)后面的index参数是一个集合方法

如果index是string那么可以获得document下面具有id或name为index的元素如果只有一个的元素话返回这个元素如果有多个元素id或name是index的话就返回一个集合如果没有的话就返回null
这样并不好因为当你不知道有多少个id或name是index的元素时就比较容易出错.
如果index是数字的话 那么会返回以0为基础的文档中第index个元素. 元素的文档序列可以通过Element.sourceIndex来获取

document.getElementById(name) 只返回第一个具有id或name为name的元素所以不是null就是一个元素 而不会返回集合这样就大大减少了错误发生的可能性

如果需要返回一个id或name为name的元素集合的话就要用 document.getElementsByName(name)来获取

另外document.all只有IE支持 其他浏览器并不支持而document.getElementById 和document.getElementsByName是任何浏览器都支持的

document.getElementById
返回 ID 属性值与指定值相同的第一个对象,如果 ID 属于一个集合,getElementById 方法返回集合中的第一个对象。

document.all
如果 ID 属于一个集合,document.all返回一个集合。而且只支持IE。

所以在使用IE的前提下,document.all(index)要生效需要保证index是唯一的

所以如果你想让你写的js脚本在目前的大多浏览器中使用,需要使用[公共标准] 标准的Javascript

document.getElementById 与 document.getElementsByName 的区别:

id是唯一的

name 可以有重复
  相关解决方案