0

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
  • 1
    how do you get to cell variable? Commented May 31, 2010 at 12:53
  • i am iterating elements by rows something like this, var rows = getElementById('table_id').getElementsByTagName('tr') for(var i=0;............) rows[i].getElementsByTagName('td') Commented May 31, 2010 at 12:58

3 Answers 3

3

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.

Sign up to request clarification or add additional context in comments.

3 Comments

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

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.

2 Comments

agree but background facilitates to provide more than one background property right ?
The difference between background and background-color won't make a difference here, as both would be computed into the backgroundColor property.
1

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().

1 Comment

it would be a miracle, if it did. besides, IE is not known for implementing DOM Specs correctly.

Your Answer

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.