Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery last-child()和:未在IE 8中工作后_Jquery_Css - Fatal编程技术网

Jquery last-child()和:未在IE 8中工作后

Jquery last-child()和:未在IE 8中工作后,jquery,css,Jquery,Css,朋友们好,下面是我的代码 HTML <ul class="menu-item"> <li>item</li> <li>item</li> <li>item</li> </ul> 我的代码在所有浏览器中都能正常工作,但在IE中却不能正常工作。我正试图用jquery做同样的事情 $(".menu-item li:last-child:after").css('content','

朋友们好,下面是我的代码

HTML

<ul class="menu-item">
    <li>item</li>
    <li>item</li>
    <li>item</li>
</ul>
我的代码在所有浏览器中都能正常工作,但在IE中却不能正常工作。我正试图用jquery做同样的事情

$(".menu-item li:last-child:after").css('content','"hi"');
你可以查一下 但它也不起作用请帮帮我


提前感谢

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

:after
:before
是伪元素,不能在事后进行操作。所以你不能这么做

另一个可能的选择器是

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

解决这个问题的一个诀窍是。

使用所需的CSS创建一个类

.newClass {}
.newClass:after { content: 'hi'; }
现在使用jQuery切换它们

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

是的,我知道。。我在jquery bcz中使用了
:aftter
,我想表明我想做的是的,但你想做的是不可能的。您不能在jQuery中选择伪元素,因为它不是元素,也不在DOM中。感谢您的帮助@elclanrs。有没有其他方法可以让samei know@Strax。。还有其他方法吗谢谢你的帮助@Starx:)为什么不使用jquery附加另一个li?或者只是附加任何内容周期。
$(".menu-item li").last().addClass("newClass");