我有一个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数组。我一直在这个论坛上搜索各种线程的答案,但无济于事。有人能够帮我解决这个难题吗?
谢谢。
答案 0 :(得分:0)
由于:after
伪其由CSS呈现,因此它不是DOM元素,因此您必须通过getComputedStyle
var check = window.getComputedStyle(
document.querySelector('#ELEMENT_ID span'), ':after'
);
if (check['content'] == 'url(../images/collapse.gif)') { ...
希望它有所帮助。