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.

📖 50 Javascript, React and NextJs Projects

Learn by doing with this FREE ebook! Not sure what to build? Dive in with 50 projects with project briefs and wireframes! Choose from 8 project categories and get started right away.

📖 50 Javascript, React and NextJs Projects

Learn by doing with this FREE ebook! Not sure what to build? Dive in with 50 projects with project briefs and wireframes! Choose from 8 project categories and get started right away.


Leave a Reply

Your email address will not be published. Required fields are marked *

Home Screencasts Best of Newsletter Search X

📖 50 Javascript, React and NextJs Projects

Hi friend! Before you go, just wanted to let you know about the 50 Javascript, React and NextJs Projects FREE ebook.

One of the best ways to learn is by doing the work. Choose from 8 project categories and get started right away:

  • Business & Real-World
  • Games & Puzzles
  • Fun & Interesting
  • Tools & Libraries
  • Personal & Portfolio
  • Project Add-Ons
  • Productivity
  • Clones

Learn by doing with this FREE ebook! Not sure what to build? Dive in with 50 projects complete with project briefs and wireframes!

Keep building and level up! Get all projects as an ebook right to your inbox!

X