14

假设它getElementById适用于每个浏览器是否安全?如果不支持,哪些支持/不支持?

4

4 回答 4

13

所有浏览器都支持这一点,但是我在 IE6 和 7 中遇到了一个问题(添加到 @Esailija 的答案中)

做这个:

<input type="text" name="address" id="address" value="5th Avenue" />  

不要这样做:

<input type="text" name="full_address" id="address" value="5th Avenue" />  

您应该这样做的原因是因为在 Internet Explorer 中,如果您尝试使用 定位元素getElementById,由于某种原因,浏览器将搜索页面上某些元素的名称属性,除了 id。假设我们使用了错误的方法来编码 name 和 id 值,下面的代码块将在 IE7 中得到完全相同的结果:

var fullAddress = document.getElementById("full_address");  
alert(fullAddress.value);  

var fullAddress = document.getElementById("address");  
alert(fullAddress.value);  
于 2012-12-11T23:54:00.043 回答
3

当前所有浏览器都支持它。它从 DOM Level 1 开始就是 DOM 的一部分。所以基本上每个支持文档对象模块的浏览器(从 IE 5.5 开始)都应该支持这种方法。

资料来源:MDN ( document.getElementById)

于 2012-12-11T23:45:57.653 回答
3

好吧,它得到了非常广泛的支持,但我知道至少有两个错误(都来自 jQuery 源):

  • 黑莓返回不在 dom 中的元素
  • name如果元素与 id 匹配,则返回元素(Opera、IE .. 版本未知)
于 2012-12-11T23:49:08.733 回答
1

由于您要求它工作的最低要求,我认为这意味着您可以期望它工作的最早的浏览器,请查看此页面:

http://www.quirksmode.org/dom/w3c_core.html

据它说,你在 IE-8 之前处于危险的境地(他们说“几乎”),并且在 FireFox、Safari、Chrome 和 Opera 方面表现出色。

于 2012-12-11T23:51:53.817 回答