0

谁能澄清一下

new_pswd = $('#new_pswd').val() // does not work in ie 7 but works in all other

当我将其更改为

newer_pswd = $('#new_pswd').val() // it works even in ie

我在想如果变量名与元素名相同,IE 7 可能不支持id's?甚至我不知道的其他版本,因为现在我的 PC 上安装了 IE 7。

4

1 回答 1

3

让一个变量等于一个元素的 id 来保存该元素,听起来很疯狂,实际上是HTML 标准的一部分:

6.2.4 对Window对象的命名访问

Window接口支持命名属性。任何时候支持的属性名称都包含以下内容,按树顺序排列,忽略后面的重复项:

  • ...
  • id活动文档中具有非空内容属性的任何 HTML 元素的内容属性id

刚刚在这里测试:

  • 在 IE7 和 IE8 中,您不能为元素 ID 的变量赋值。
  • 在 IE 9 和 Chrome 中你可以。
  • Firefox:有一些副作用,但是:版本 13 仅在 quirks 模式下;版本 14 和更新的标准模式。

在DOM Element References as Global Variables和DOM中有一些有用的讨论:元素 ID 是全局变量

底线:不要使用作为元素 ID 的变量名称。最终,它具有不可预测的行为。如果您打算使用它们,请至少阅读这两篇文章。

于 2013-07-05T17:46:31.530 回答