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 可以有重复