2

在 Firefox 3.6(Firebug 控制台)中,做

$('<div style="-x-foo:bar;color:red;" />').attr("style")

结果是

"color: red;"

为什么无法识别的样式规则丢失了?

4

3 回答 3

4

jQuery 将创建一个新的 DOM 元素。Firefox 将解析该style元素的属性并忽略它不理解的任何内容。

值得注意的是,Chrome 不会删除这样的属性。

尝试此链接以在不同的浏览器中测试此行为 - 感谢ILMV

于 2011-02-10T13:45:39.967 回答
2

对于浏览器应该如何处理无法识别的规则,没有定义的操作。一些浏览器可能会将它们添加到 DOM 但忽略它们,其他浏览器可能会完全删除它们。

Firefox 是删除未知规则的其中之一。

在其他浏览器中您可能会得到不同的结果。关键是它是未定义的,因此很难预测会发生什么,即使在同一浏览器的版本之间也是如此。

我想真正的问题是:您要指定的无法识别的规则是什么?您显然在这里尝试做某种聪明的把戏,我怀疑您对这个问题的答案是否会是您正在寻找的答案,以便让您的聪明把戏发挥作用。或许,如果您描述了您试图通过这条未被识别的规则实现的目标,我们可以帮助您找到实现目标的方法,尤其是在您当前的计划似乎不太可能实现的情况下。

于 2011-02-10T14:06:09.303 回答
0

浏览器在创建节点并设置属性值时会丢弃它无法识别的属性。

当您获得浏览器在内存中保存的内容的序列化时,它们不再存在。

于 2011-02-10T13:46:59.123 回答