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

时间:2017-10-17 18:14:04

标签: javascript jquery html css pseudo-element

告诉我如何更改元素的属性:before?

例如:

的CSS:

.myclass:before {
    content:                '';

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

jquery的

myElement.addClass('myclass');

我想改变:

left: 40px

left: 100px

我该怎么做?

2 个答案:

答案 0 :(得分:2)

伪元素不是DOM的一部分,因此不能使用jQuery或Javascript来操作它们。

你可以尝试使用jQuery直接插入css

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

或者我喜欢的方式是添加另一个在CSS规则中保留100 px的类

<强> CSS

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

<强>的jQuery

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

答案 1 :(得分:0)

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