Using :before via 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;
    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:$('<div class="divElement"><p><strong></strong></p></div>').appendTo(....)动态地创建了这个元素,这是正确的。当使用jQuery和我试图在divElement(我用:before在CSS中定义)之前动态更改内容的backgroung-imagetop属性时,问题就来了

我为background-image尝试了这样的东西,但不起作用:

$('.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");

最新更新