jQuery和伪元素

我动态地改变了在CSS中定义的en元素的位置:after 。 我试着这样改变它:

 $(function(){ $('div::after').css({'top':'20px'}) }) 

但它不起作用。 有没有办法改变立场?

你不能。 创建的内容:after:before不是DOM的一部分,因此无法选择或修改。

如果您看一下这个示例 ,请在Firebug或类似文件中查看并检查DOM,您将看到DOM树中不存在伪元素。

一个潜在的解决方案是将类应用于您想要更改的元素,并在CSS中适当地设置该类的样式:

 $("div").addClass("newClass"); 

看一下这个小提琴的例子 。

添加CSS:

 p.special:before { content: "bar"; position: absolute; top : 10px; } 

假设上面放置代码的样式表是页面上的第一个代码,使用它来更改它:

 document.styleSheets[0].addRule('p.special:before','top: 15px;');