why when i write
document.getElementByClass('home1').setAttribute('style', 'background-image:url(img/red_menu.PNG);');
it doesn't work?
i have the element with class=home1
with document.getElementById('home1')...
works fine
thanks
why when i write
document.getElementByClass('home1').setAttribute('style', 'background-image:url(img/red_menu.PNG);');
it doesn't work?
i have the element with class=home1
with document.getElementById('home1')...
works fine
thanks
It's getElementsByClassName
, not getElementByClass
; details here. Note that IE does not support this function (yet).
getElementsByClassName
returns a NodeList of matching elements (rather than a single element), so:
var list, index;
list = document.getElementsByClassName(home1);
for (index = 0; index < list.length; ++index) {
list[index].setAttribute(/* ... */);
}
For this sort of thing, you may want to use a library like jQuery, Prototype, Google Closure, etc., to pave over the various browser differences for you. They can save you a lot of time and trouble compared with dealing with those differences yourself.
For instance, in jQuery:
$(.home1).attr(/* ... */);
...applies that attribute (via jQuery#attr
) to every element with the class home1. Although in your particular case, you'd probably want jQuery#css
instead.