【发布时间】:2011-03-27 01:01:10
【问题描述】:
当我注意到一些奇怪的行为时,我正在开发一个 Web 应用程序。我有一个元素,其样式通过 JavaScript style 属性应用。之后,我尝试使用removeAttribute("style") 删除元素上应用的所有样式。这仅适用于 Gecko。 WebKit 什么都不做。
我发现了一种解决方法(在删除属性之前使用 setAttribute("style", "")),但我不明白为什么在 WebKit 上需要 setAttribute 而不是 Gecko。为什么?
我有一个 here 行为示例。 尝试注释掉 setAttribute 行,看看 Gecko 和 WebKit 之间的行为有何不同。
【问题讨论】:
-
您正在编辑 DOM 属性,而不是 HTML 属性。尝试将
.style.background设置为空。此外,将属性设置为空字符串并不是删除它的可靠方法。 -
@Matt:我曾假设更新 DOM 属性也会更新 HTML 属性以反映这一点。其次,我将其设置为空,然后也将其删除,而不仅仅是将其设置为空。
-
这不是我第一次看到
removeAttribute与setAttribute有不同的行为,带有一个空字符串;我正在考虑的情况是尝试删除内联事件侦听器。 (在这种情况下,setAttribute引起了 JavaScript 严格警告,因此并不理想。)
标签: javascript html css webkit gecko