2016-08-10 129 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