27

Here's how you get one css attribute using jQuery:

$('someObject').css('attribute')

How do you get them all? (without specifying and preferably in the following format so it can be reapplied with jQuery later):

 cssObj = {
 'overflow':'hidden',
 'height':'100%',
 'position':'absolute',
 }

Thanks!!

EDIT

The methods I'm trying to get are declared in a style sheet (they are not inline). Sorry for not specifying.

asked Oct 19, 2010 at 4:23
3
  • +1 I thought of asking the same question few days ago Commented Oct 19, 2010 at 4:29
  • possible duplicate of Can jQuery get all CSS styles associated with an element? Commented Oct 23, 2010 at 0:20
  • So what you're saying is, Gotta Catch 'Em All? Commented Jul 13, 2016 at 4:06

5 Answers 5

17

See this live example using the jQuery attribute selector

$(document).ready(function() {
 alert($("#stylediv").attr('style'));
});​
jacktheripper
14.3k12 gold badges61 silver badges93 bronze badges
answered Oct 19, 2010 at 4:30
Sign up to request clarification or add additional context in comments.

8 Comments

@Avinash - So? .css() wouldn't pick that up either: jsfiddle.net/kGkrX ---- And this question is trying to get all the CSS properties that would be picked up by .css(). --- Getting all the applied styles is a completely different question with a much more difficult answer (Firebug can do it ;) )
@peter I'm just trying to say, we just can't get all css properties [ declared in a style tag ], of an element using style attribute
Yep, that's why i made the comment below. I thought the OP wanted all the CSS attributes (non-inline) applied to an element, in which case neither of these answers would work. But yes, these answers are the equivalent of .css *.
@peter You can get all the css properties declared in an element's style tag what does it mean ? you mean style attribute. BTW, I'm not too specific about declaring css properties only in a style Tag. I mean declaring other than inline-style :)
$('#stylediv').prop('style') that's all ;)
|
9

What about something like this:

jQuery CSS plugin that returns computed style of element to pseudo clone that element?

It is ugly, but it appeared to work for the poster...

This also may be of interest: https://developer.mozilla.org/en/DOM:window.getComputedStyle

answered Oct 19, 2010 at 5:05

1 Comment

oh wow that is fugly +1 :) This is probably the answer unless someone has a way that doesn't iterate through all the attributes (which I doubt, considering the discussion on that SO question). Thanks for the heads up on getComputedStyle as well!
6

Not sure how cross-browser this one is, but it works in Chrome -

https://gist.github.com/carymrobbins/223de0b98504ac9bd654

var getCss = function(el) {
 var style = window.getComputedStyle(el);
 return Object.keys(style).reduce(function(acc, k) {
 var name = style[k],
 value = style.getPropertyValue(name);
 if (value !== null) {
 acc[name] = value;
 }
 return acc;
 }, {});
};
answered Aug 23, 2014 at 17:58

Comments

1

window.getComputedStyle(element);

// For example
var element = document.getElementById('header');
window.getComputedStyle(element);
answered Feb 28, 2018 at 7:22

1 Comment

NOTE This will return an object element.
0

For a platform (the name is subject to nondisclosure) where the Chrome or Safari DevTools/WebInspector are not available, and you need to dump the styles to the log.

 dumpCssFromId (id) {
 const el = document.getElementById(id);
 const styles = window.getComputedStyle(el);
 return Object.keys(styles).forEach((index) => {
 const value = styles.getPropertyValue(index);
 if (value !== null && value.length > 0) {
 console.log(`style dump for ${id} - ${index}: ${value}`);
 }
 }, {});
 }
answered Sep 30, 2020 at 17:29

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.