【问题标题】:Are JavaScript equality operators for DOM elements cross-browser?DOM 元素的 JavaScript 相等运算符是否跨浏览器?
【发布时间】:2013-01-02 16:30:59
【问题描述】:

===== 是否可以在所有浏览器中针对 DOM 元素正常工作?如果代码以两种不同的方式获取对原始 DOM 元素的引用,那么它们在所有浏览器中是否都相同 =====

【问题讨论】:

  • @AndyRay,我为什么要关闭它?如果您想回答它,请继续。最好有参考资料。
  • @AndyRay,不,你没有。显然您不熟悉 Stack Overflow 上的评论和答案之间的区别。
  • 至少在将事件对象中的元素与存储到变量的元素引用进行比较时,它至少对我有用。
  • 我查看了规范......它只是说如果xy 是同一个对象,则运算符返回true。但这并不意味着各种 DOM 方法必须返回对同一个 DOM 节点的引用,以便在 JS 中可以认为它们是相等的。我也没有在 DOM 规范中找到这方面的任何内容。
  • @Andy:不,它是在询问同一个 host 对象,特别是通过不同方法检索到的 DOM 对象在每个浏览器中是否相等。

标签: javascript cross-browser equality dom


【解决方案1】:

== 和 === 是否可以在所有浏览器中对 DOM 元素正常工作?

是的,这些相等运算符将按照 ECMAScript 标准的定义工作。

请注意,== 经常会做一些开发人员意想不到的事情,例如在与字符串值进行比较时转换为字符串。这将使以下陈述成立,尽管它可能不是预期的结果:

document.createElement('div') == '[object HTMLDivElement]'

在大多数情况下,您需要使用 === 运算符。

【讨论】:

  • 正如 Felix 指出的那样,ECMAScript 标准并没有真正说明 DOM。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-20
  • 2013-04-05
  • 1970-01-01
  • 2011-08-02
  • 2011-08-03
  • 1970-01-01
相关资源
最近更新 更多