使用:before via Jquery

使用:before via Jquery,jquery,Jquery,我现在的问题是:我通过CSS定义div元素的当前角色 .divElement:before { background-image: url(../images/triangle.png); background-repeat: no-repeat; content: ""; height: 20px; left: 62%; margin: 0 0 0 -50px; position: absolute; top: -20px;

我现在的问题是:我通过CSS定义
div
元素的当前角色

.divElement:before {
    background-image: url(../images/triangle.png);
    background-repeat: no-repeat;
    content: "";
    height: 20px;
    left: 62%;
    margin: 0 0 0 -50px;
    position: absolute;
    top: -20px;
    width: 100px;
}

.divElement{
    background: none repeat scroll 0 0 #FFF8D6;
    border-radius: 10px 10px 10px 10px;
    color: black;
    font: 1em/1.4 Cambria,Georgia,sans-serif;
    margin: 0px 500px 3em;    
    padding: 15px;
    position: relative;
    text-align: center;
}
我使用jQuery动态创建了这个元素:
$('

')。appendTo(…)
这可以正常工作。当使用jQuery时,问题就出现了,我尝试动态更改
背景图像
divElement
之前内容的
top
属性(我在CSS中使用
:before

我在背景图像上尝试了类似的方法,但不起作用:

$('.divElement:before').css('background-image', 'url(../images/triangle_reverse.png)');

我该怎么做?谢谢大家

下面将搜索类为
.divElement
的所有节点,获取tem前出现的相应元素并更改其背景图像。这就是你想要实现的吗

$('.divElement').prev().css('background-image', 'url(../images/triangle_reverse.png)');

我认为最好的解决方案是在CSS中保留这个()的样式,只需在jQuery中使用
addClass
函数。下面是一个例子:

.divElement:before {
    background-image: url(../images/triangle.png);
}

.divElement.reverse:before {
    background-image: url(../images/triangle_reverse.png);
}
然后在jQuery中,只需添加类
reverse
,如下所示:

$('.divElement').addClass("reverse");
您甚至可以使用以下工具轻松地在打开和关闭状态之间切换:

$('.divElement').toggleClass("reverse");

感谢您的即时回复,是的,我尝试更改之前出现的元素的背景图像和top属性…但仍然不起作用…请注意:before伪类选择器在IE 8之前的IE版本中不起作用。