Checkout my Getting Started with React video course on Skillshare. It is 100% free.

Getting the value of the content property of ::after or ::before with Javascript

Let's say we have the following CSS declaration:

#myElement::before {
    content: " <- Javascript is cool!";
    color: green;
}

We want to be able to read the value of the content property. The " <- Javascript is cool!" string.

In order to do this, we will need to use the getComputedStyle() method:

const getContentOfPseudoElement = (el, pseudoEl) => {
    const styles = window.getComputedStyle(el, '::'+pseudoEl);
    return styles.content;
}

const el = document.getElementById('foo');
console.log(getContentOfPseudoElement(el, 'before'));

If we want to get the value of the content property for ::after we just need to change the second parameter of the function.

getContentOfPseudoElement(el, 'after');

Note that if the content property is not defined, then the string"none" will be returned.

This will return the correct value even for the more fancy stuff that we can do with the attr() CSS function. Like:

a::after { 
    content: ' [' attr(href) ']'; 
}

You can see also in the article about sharing the CSS breakpoints with JavaScript a usage of this concept.

Home Screencasts Best of Newsletter Search X