tags:

views:

41

answers:

3

I have table cell which has class "cellActive". Which has following defination

.cellActive{background:"#DDDDDD"}

Now i am trying to read the background color property for the cell and it comes null/"".

var bgColor = cell.style.backgroundColor; // returning ""

Is that something mistake on my part of its by behavior. If CSS class is assigning CSS to element can't we read its value in JS ? Does this mean that if we are not assigning property directly to the element we cant get it if in case its inheriting it ?

+2  A: 

There is a difference between "background" and "background-color". Also, the "style" property means the style property of the element has been set in either HTMl or Javascript. Use "computedStyle" for other cases. That means using the getComputedStyle() method, which you can learn about here.

Robusto
agree but background facilitates to provide more than one background property right ?
Anil Namde
The difference between `background` and `background-color` won't make a difference here, as both would be computed into the `backgroundColor` property.
Pekka
+3  A: 

The style attribute contains only explicitly set properties, not those inherited from a class. You need the so-called "computed style" that reflects the properties the way they were actually rendered.

See the accepted answer to this question for a very good cross-browser solution.

Pekka
thanks very nice answer ..... helped but does this also mean that if browser does not support it it cant be fetched ?
Anil Namde
@Anil yes, but the solution in the answer I link to will work in all major browsers.
Pekka
thanks :) as you have said it looks nice in all major browsers.
Anil Namde
+1  A: 

there are various ways to access CSS in JavaScript Element.style actually accesses what is written to the style attribute. to get the full CSS rather use getComputedStyle().

Dormilich
`getComputedStyle` doesn't work in IE.
Pekka
it would be a miracle, if it did. besides, IE is not known for implementing DOM Specs correctly.
Dormilich
@Dormilich sure, but sadly, many people still use IE. Too many to ignore it....
Pekka
@Pekka sad, but true.
Dormilich