如何更改:before(伪元素)元素(使用jQuery)的属性

问题描述:

告诉我如何更改元素的属性:before?如何更改:before(伪元素)元素(使用jQuery)的属性

例如:

CSS:

.myclass:before { 
    content:    ''; 

    position:    absolute; 
    left:     40px; 
    top:     -10px; 
} 

jQuery的

myElement.addClass('myclass'); 

我想改变:

left: 40px 

left: 100px 

我怎么能这样做?

伪元素不是DOM的一部分,所以他们不能使用jQuery或Javascript进行操作。

什么,你可以尝试是使用jQuery

$('head').append('<style>.myclass:before{left:100px;}</style>'); 

或将我喜欢的方式是添加已在其CSS规则留下100像素其他类直接插入CSS

CSS

.myclass.active:before { 
    left: 100px; 
} 

jQuery的

$("#myElement.myclass").addClass("active"); 

Afaik没有直接的方法来做到这一点。如果你真的想更新CSS规则 - 那么你需要去浏览器的CSSOM interfaces。但是在大多数情况下,只需定义单独的CSS规则就可以更容易,该规则在为元素分配额外的CSS类时为:before伪元素进行必要的更新。