document.getElementById 与 document.all区别?

    技术2022-05-20  51

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


    最新回复(0)