能否向伪元素添加类?

6
我猜不行,因为这个没有起作用:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" >
 $("p:after").addClass("allgone");
</script>
<style type="text/css">
p:after {
 content: "daniel";
}
.allgone{
display: none;
}
</style>
<title></title>
</head>
<body>
<p></p>
</body>
</html>

JSFIDDLE


伪元素是伪元素。它们不是真正的元素,也不像它们一样运作。它们是通过CSS渲染的。 - Blender
3个回答

17
不可以,但是你可以将该类添加到 p 元素中,并为其创建另一种样式。
p:after {
    content: "daniel";
}
p.allgone:after {
    display: none;
}

$('p').addClass('allgone');

http://jsfiddle.net/xGUaY/


那是一次漫长的搜索,在找到这个答案之前,谢谢! - CularBytes

4
不,伪元素不是DOM的一部分,也无法通过JavaScript访问。
我认为它们是Shadow DOM的一部分。伪元素由浏览器呈现为内联元素,位于包含元素中,可以作为第一个或最后一个子元素。

0

不行,因为它们是伪元素而不是实际的DOM。 但你可以玩弄添加的类,比如说如果你添加了类box, 那么你就可以使用.box:after.box:before.box::after.box::before,具体取决于你正在编写的版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接