2

您好朋友以下是我的代码

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 m 中尝试使用 jquery 做同样的事情

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

你可以在这里查看演示, 但它也不起作用,请帮助我

提前致谢

4

2 回答 2

6

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

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

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

解决它的一个技巧是。

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

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

现在使用 jQuery 切换它们。

$(".menu-item li").last().addClass("newClass");
于 2012-04-24T04:38:57.257 回答
3

您不能:after在 jQuery 中使用伪选择器,因为该元素实际上并不存在于 DOM 中。它在您的示例中有效,因为它是在 CSS 中设置的,如果您删除该规则,它将不再有效。IE 的问题是伪选择器不完全受支持且存在缺陷。

于 2012-04-24T04:36:04.820 回答