【发布时间】:2012-02-28 07:28:59
【问题描述】:
我需要为我的元素动态创建 CSS 样式。但是,我需要 :after 在 CSS 中,我听说你不能在 jQuery 中修改它。
这是真的吗?有没有办法解决?
【问题讨论】:
我需要为我的元素动态创建 CSS 样式。但是,我需要 :after 在 CSS 中,我听说你不能在 jQuery 中修改它。
这是真的吗?有没有办法解决?
【问题讨论】:
这是真的吗?
是的。使用:after 创建的伪元素不属于 DOM,因此无法选择。
这里面还有吗?
没有。除非您在没有:after 的情况下执行此操作(使用实际元素,然后您可以选择它/将事件绑定到它)。
编辑
重新阅读您的问题后,我认为您实际上是在问是否可以将 :after 样式应用于带有 jQuery 的元素。答案仍然是否定的,尽管您可以使用 addClass 向元素添加新类并为该类名称定义 :after 样式。
再次编辑
当我说“不”时,我似乎并不完全正确......请参阅@AtesGorals 回答以获得很好的解决方法。
【讨论】:
为什么要使用 javascript 创建 css?
在 css 类中具有所需的样式,然后使用 jQuery 通过 addClass 方法应用该类。
【讨论】:
您可以生成<style>标签并将其插入<head>:
$("head").append($('<style>div:after { content: " World" }</style>'));
【讨论】:
:after,它在任何较低版本中都不起作用。
:after,因此浏览器支持不是问题/答案的一部分。