使用jQuery确定当前span css content: url(../..)的值



我有一个span标签,通过样式表分配css类,这取决于它是否被单击它改变值。css图像通过如下所示的内容完成:

ie。下面是css的一部分:

.nav li > a > span:after {
font-size: 19px;
content: url(../images/expand.gif);
}
.nav li.open > a > span:after {
content: url(../images/collapse.gif);
}

span没有id,但位于具有唯一id的超链接标签中。我能够通过jQuery为每个特定的span标签分配一个变量。我将粘贴在下面的代码给了我超链接父节点的链接值,但我真正需要的是css中分配的内容url的当前值。

下面是一个php &jQuery从代码我正在工作:

$content = '
<script type="text/javascript">
$(document).ready(function() {';
foreach ($catchClass as $id)
{
    $content .= '
    var $span = $("#' . $id['id'] . ' span");
    var check = $span.after("eq")[0].parentNode;
    // alert("test: " + check);
    if (check === "../images/collapse.gif") {
        $span.attr("style", "font-size: 19px; content: url(../images/collapsex.gif);");         
    }
    elseif (check === "../images/expand.gif") {
        $span.attr("style", "font-size: 19px; content: url(../images/expandx.gif);");           
    }
    ';
}
$content .= '   
});
</script>';

警报只是为了让我可以看到当我得到我正在寻找的正确值。var check = $span.after("eq")[0].parentNode;…是什么我需要改变,以获得我正在寻找的内容url值。$catchClass保存页面上显示的超链接id数组。我一直在这个论坛上寻找各种各样的答案,但无济于事。有人能帮我解决这个难题吗?

谢谢。

由于:after是由CSS呈现的,所以它不是DOM元素,所以您必须通过getComputedStyle

访问它
var check = window.getComputedStyle(
    document.querySelector('#ELEMENT_ID span'), ':after'
);
if (check['content'] == 'url(../images/collapse.gif)') { ...

希望能有所帮助。

最新更新