tags:

views:

82

answers:

2

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.

+1  A: 

See Live Example

$(document).ready(function()
                  {
                      alert($("#stylediv").attr('style'));
                  });​
vinothkumar
how about this http://www.jsfiddle.net/twP6S/2 ?
Ninja Dude
@Avinash - So? `.css()` wouldn't pick that up either: http://www.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 Ajtai
@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
Ninja Dude
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 *.
RPM1984
@Avinash - The example you point out are not in a style tag. You can get all the css properties declared in an element's style tag using these methods. You cannot get all the css styles applied to an element using these methods.
Peter Ajtai
@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` :)
Ninja Dude
.css('attribute') grabs the attribute from off of the style sheet even if it's not defined inline. .attr('style') returns 'undefined' for all definitions in the stylesheet. I might be confused, but I need to grab what's in my stylesheet.
Emile
@Avinash - Yeah. I do mean the `style` attribute when I say `style tag`... my bad. --- I see what you want, but the OP is not formatted to include that, since it specifically mentions the functionality of `.css()`.
Peter Ajtai
@peter no problem bro :)
Ninja Dude
+3  A: 

What about something like this:

http://stackoverflow.com/questions/1004475/jquery-css-plugin-that-returns-computed-style-of-element-to-pseudo-clone-that-ele

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

Andrew M
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!
Emile