Look mom no jQuery !!! Getting all CSS properties of a DOM element in pure JavaScript

Getting and setting CSS properties is a simple task. We can make it in pure JavaScript:

Using jQuery it can be done with the $.css() method:

The recent jQuery++ project claims to have a $.styles() method fastest than $.css() one.

The issue is: How to get all the styles of a given DOM element? Not only those applied directly with the style attribute but those applied using CSS classes.

The solution

Next code retrieves an object with all the style properties of a given DOM element, no matter if they were specified in CSS classes or withint the style attribute of the element.

The idea behind the code is simply: we invoke the browser function that computes the whole element’s style or, if it is not possible, retrieves the CSS properties from the style attribute.

The code works (or must work) on any browser. For FireFox and Chrome browser the right way to get the computed style is through the window.getComputedStyle() method, while on IE and Opera browsers the dom.currentStyle property is the right place.

Related Posts:

2 Responses

  1. Aaron Sawyer July 19, 2012 / 14:42

    Poked at the code with JSLint and reached a version that we both were happy with:

  2. Ashish Kumar December 19, 2013 / 13:47

    Well, it’s a very nice approach. I liked it very much. Just one thing I would like to point out:
    As you are reading the computed style first, and then the attribute style. So, my point is, in computed style the styles from attribute styles come itself, then no need to do it again.

    And if not coming from attribute style in computed style, then you should not put a return in the first 2 loops, so that your compiler comes the end and reads the style attribute also.

    Otherwise, its very nice. Thank you!

Leave a Reply

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">