document.getElementById 与 document.all区别?

来源:互联网 发布:短信链接打开淘宝app 编辑:程序博客网 时间:2024/05/01 11:05

document.getElementById 与 document.all区别?

document.all 是微软的东西,只被IE支持。

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

document.getElementById ,document.all,在IE和 Firefox 下的区别在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 可以有重复。