2012-02-08 3 views
4

Я думаю, не так как это не работает:Можно ли добавить класс в псевдоэлемент?

<!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

+0

Псевдо-элементы являются псевдо-элементы. Они не являются элементами, и они не функционируют как они. Они отображаются через CSS. – Blender

ответ

9

Нет, но вы можете добавить класс в элемент p и создать для него альтернативный стиль.

p:after { 
    content: "daniel"; 
} 
p.allgone:after { 
    display: none; 
} 

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

http://jsfiddle.net/xGUaY/

+1

это хороший отзыв;) спасибо –

3

Нет, псевдо элементы не являются частью DOM, и они не могут быть доступны через JavaScript.

Я считаю, что они являются частью Shadow DOM. Псевдоэлемент визуализируется браузером как встроенный элемент внутри содержащего элемента, либо как первый, либо последний ребенок.

Смежные вопросы