jQuery在$(html_with_inline_styles)上丢失样式

时间:2011-02-10 13:43:21

标签: jquery html css firefox inline-styles

在Firefox 3.6(Firebug控制台)中,执行

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

结果

"color: red;"

为什么不识别的样式规则会丢失?

3 个答案:

答案 0 :(得分:4)

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

值得注意的是,Chrome不会删除此类属性。

尝试this link在不同的浏览器中测试此行为 - 感谢ILMV

答案 1 :(得分:2)

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

Firefox是丢弃未知规则的人之一。

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

我想真正的问题是:你想要指定的无法识别的规则是什么?你在这里显然想要做一些聪明的伎俩,我怀疑你已经给出了问题的答案将是你正在寻找的答案,以便你聪明的伎俩起作用。也许如果你描述了你试图通过这个无法识别的规则实现的目标,我们可以帮助你找到实现它的方法,特别是因为你当前的计划似乎不太可能成功。

答案 2 :(得分:0)

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

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