Using javascript, I want to change the style of class .s
into
.s {
display: block;
}
Why this cannot work:
document.getElementsByClassName('s').style.display='block';
Using javascript, I want to change the style of class .s
into
.s {
display: block;
}
Why this cannot work:
document.getElementsByClassName('s').style.display='block';
Share
Improve this question
edited Jan 6, 2014 at 9:09
Praveen
56.5k35 gold badges136 silver badges165 bronze badges
asked Jan 6, 2014 at 9:02
Yishu FangYishu Fang
9,95822 gold badges66 silver badges108 bronze badges
6
|
Show 1 more comment
3 Answers
Reset to default 22document.getElementsByClassName
: returns a set of elements which have all the given class names.
You may have multiple elements with this class name. so you need to provide index like
document.getElementsByClassName('s')[0].style.display='block';
Inorder to apply for style for all elements with same class name:
var ele = document.getElementsByClassName('s');
for (var i = 0; i < ele.length; i++ ) {
ele[i].style.display = "block";
}
As getElementsByClassName
returns an array you need to make a for
loop over all found elements:
var elements = document.getElementsByClassName('s');
for (var i = 0; i < elements.length; i++) {
elements[i].style.display = "block";
}
var sCls = document.getElementsByClassName('s');
for(var i in sCls) {
sCls[i].style.display='block';
}
this may work!
var elems = document.getElementsByClassName('s'); for(var i = 0; i < elems.length; i++) { elems[i].className += " new-class"; }
Then define new-class with appropriate styles – user632287 Commented Jan 7, 2014 at 9:36