使用jQuery确定当前跨度css内容:url(... / ...)值

时间:2014-03-21 19:33:39

标签: php jquery html css

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

即。这是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中分配的内容网址的当前值。

以下是php& amp;的示例我正在处理的代码中的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(&#34; eq&#34;)[0] .parentNode; ...是我需要更改以获取我正在寻找的内容网址值。 $ catchClass包含页面上显示的超链接ID数组。我一直在这个论坛上搜索各种线程的答案,但无济于事。有人能够帮我解决这个难题吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

由于:after伪其由CSS呈现,因此它不是DOM元素,因此您必须通过getComputedStyle

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

希望它有所帮助。