Internet Explorer 元素 ID 错误,至少带有 SELECT 标签;不需要 document.getElementById 来识别它

发布于 2024-11-15 12:31:17 字数 539 浏览 3 评论 0原文

我正在重构一些(其他人的)代码,并且我前段时间已经看到过这种情况,但我不记得发生这种情况的原因。 HTML 中有一个 SELECT 标记,如下所示:

<SELECT id="model"></SELECT>

在 JavaScript 中,有一条语句向 SELECT 标记添加一个选项:

model.options[i]=option;

由于某种原因,这在 Internet Explorer 中运行良好(在 IE 7 和 8 中测试)。它应该引发错误,但事实并非如此。然而,在像 FireFox 这样的浏览器中,这会引发一个错误,因为它应该是这样,因为代码应该是:

document.getElementById("model").options[i]=option;

除了 Internet Explorer 不喜欢遵守 W3C 标准之外,这背后的原因是什么?这只是 SELECT 或任何数量的标签的问题吗?

谢谢你!

I'm refactoring some(body else's) code and, I've seen this before some time ago, and I don't remember the reason why it's happening. There's a SELECT tag in HTML that looks like this:

<SELECT id="model"></SELECT>

In JavaScript, there is a statement which adds an option to the SELECT tag:

model.options[i]=option;

This works fine in Internet Explorer (tested in IE 7 and 8) for some reason. It should fire an error but it does not. However, in a browser like FireFox, this raises an error, as it should, for the code should be:

document.getElementById("model").options[i]=option;

What is the reason behind this, besides the fact that Internet Explorer prefers not to conform to W3C standards? Is this just an issue with SELECT or any number of tags?

Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

当爱已成负担 2024-11-22 12:31:17

如果我没记错的话,Internet Explorer 创建与元素的 id 属性相对应的全局变量。

因此,当您创建一个元素时……

<select id="wtv"></select>

IE 在底层将全局变量 wtv 初始化为该元素的 DOM 对象。但其他浏览器不这样做,因此 wtv 未定义。

一些引文:

If I recall correctly, Internet Explorer creates global variables corresponding to the id attributes of elements.

So when you create an element...

<select id="wtv"></select>

... under the hood IE initializes a global variable wtv to be a DOM object for that element. But the other browsers don't do this, so wtv is undefined.

Some citations:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文