在 IE11 与 IE8 中引用 DOM 个元素

Referencing DOM elements in IE11 vs IE8

我有一个包含以下内容的网站 HTML/javascript:

<input type="text" id="txtPhaseID" onkeypress="return onlyNumbers();" />
<a id="btnLookup" onclick="GetEventLookupData(txtPhaseID.value);this.blur();return false;" href="javascript:void(0);" class="btn"><span>Lookup</span></a>

onclick 事件中对 txtPhaseID.value 的引用在 IE8 中有效,但在 IE11 中无效。我希望它在这两个方面都失败,因为你应该使用 document.getElementById.

为什么这在 IE8 中有效?

从技术上讲,当您向元素添加 id 时,您可以使用 id.property 直接从 DOM 访问它 - 但它一直被认为是非常糟糕的做法,以至于没有人被教导过那样。我只能想象它最终在 Internet Explorer 11 中被删除了。我不知道它叫什么,我认为它从来没有被赋予一个特定的名称,这意味着谷歌搜索将 return 非常有限的结果。不幸的是,如果他们确实删除了它,可能没有任何说明。

这里有一些来自 Whosebug 的其他资源以获取更多信息:

Do DOM tree elements with ids become global variables?

Why don't we just use element IDs as identifiers in JavaScript?