2016-08-10 95 views
8

我需要得到:after并将其分配给变量。有可能的?如何获取伪元素?

querySelectorAll不起作用。

alert(some_div_with_pseudo.querySelectorAll('::after')[0]) // undefined 
+0

你_cannot_,正如其名 '伪' 暗示。这些不是实际DOM的一部分,它们是应用于实际元素的javascript样式规则。 – somethinghere

回答

0

你应该DOS是这样的:

window.getComputedStyle(
    document.querySelector('somedivId'), ':after' 
); 

样品在这里:https://jsfiddle.net/cfwmqbvn/

+0

它返回样式。我需要元素 –

+4

“:之后”是一个伪元素,而不是一个元素。你不能返回一个DOM节点,它不是一个 - 所有你可以做到的样式:) – MrBizle

4

假设你的CSS是这样的:

.element:after { 
    content: 'NEW'; 
    color: rgb(255, 0, 0); 
} 

要检索的颜色属性。元素:之前,您可以使用以下JavaScript:

var color = window.getComputedStyle(
    document.querySelector('.element'), ':after' 
).getPropertyValue('color') 

var color = window.getComputedStyle(
 
\t document.querySelector('.element'), ':after' 
 
).getPropertyValue('color'); 
 
alert(color);
.element:after { 
 
\t content: 'NEW'; 
 
\t color: rgb(255, 0, 0); 
 
}
<div class="element"></div>

+0

它返回样式。我需要元素 –

+3

本来很高兴引用您的源代码:https://davidwalsh.name/pseudo-element – PhilMarc