last-child()和:在IE 8中不工作之后

时间:2012-04-24 04:34:03

标签: jquery css

以下朋友以下是我的代码

HTML

<ul class="menu-item">
    <li>item</li>
    <li>item</li>
    <li>item</li>
</ul>

CSS

.clear-right{
color:red;
}
.menu-item:last-child{
    color:red;}
.menu-item:last-child:after
    {
content:'hi';
}

我的代码在所有浏览器中都运行良好,但在IE中没有工作,试图用jquery做同样的事情

$(".menu-item li:last-child:after").css('content','"hi"');

你可以查看demo here 但它也没有用,请帮帮我

提前致谢

2 个答案:

答案 0 :(得分:6)

:after:before是伪元素,之后无法对其进行操作。所以你不能这样做。

另一种可能的选择器就是这个

$(".menu-item li").last().css('content', 'hi');

解决问题的一个方法是。

使用您需要的CSS创建一个类

.newClass {}
.newClass:after { content: 'hi'; }

现在使用jQuery切换它们。

$(".menu-item li").last().addClass("newClass");

答案 1 :(得分:3)

您不能在jQuery中使用:after伪选择器,因为该元素实际上不存在于DOM中。它适用于您的示例,因为它在CSS中设置,如果您删除该规则它将不再起作用。 IE的问题在于没有完全支持伪选择器和错误。