Javascript Can';t编辑:before,:after的css样式?

Javascript Can';t编辑:before,:after的css样式?,javascript,jquery,css,Javascript,Jquery,Css,我有这种款式: section.tipos .content > div:before { background: none repeat scroll 0 0 #DDDDDD; content: " "; height: 10px; left: 32%; position: absolute; top: -10px; width: 10px; } 这很好 但是,当发生某些事件时,我希望将左属性更改为另一个% 我知道这可以通过使用类

我有这种款式:

section.tipos .content > div:before {
    background: none repeat scroll 0 0 #DDDDDD;
    content: " ";
    height: 10px;
    left: 32%;
    position: absolute;
    top: -10px;
    width: 10px;
}
这很好

但是,当发生某些事件时,我希望将左属性更改为另一个%

我知道这可以通过使用类名或样式来实现(当然)。但是我的老板不太喜欢这些类名,除非它们是100%需要的

问题是:我可以从javascript更改伪选择器的css吗?类似这样的东西(但那是有效的)


尝试将“%”附加到css样式值:

$('section.tipos .content > div:before').css({ 'left' : 50+index*17 + '%'});

不,你不能那样做。
:before
:after
伪元素在Javascript代码中不可用

最好的解决方法是使用Javascript更改主元素的类,并根据伪元素的类为
:before
使用单独的CSS代码

然后您可以使用如下CSS代码:

section.tipos .content > div.newClass:before {
    ....
}

但是,我注意到您希望将宽度设置为计算值;使用上述技术可能会很棘手。可能会有所帮助,具体取决于使用的
索引
,以及您需要的浏览器支持级别。

不幸的是,您需要解决此问题,例如为元素添加新的
,并设置
!重要信息
section.tipos .content > div.newClass:before {
    ....
}