假设它getElementById
适用于每个浏览器是否安全?如果不支持,哪些支持/不支持?
问问题
8835 次
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 开始)都应该支持这种方法。
于 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 回答