getElementsByClassName
In my series of pages relating to the methods used in some of the code that I construct my pages the getElementsByClassName() method is used in my implemetation of an accordian element.
getElementsByClassName() is a selector used in page coding that allows the programmer to select elements by class name.
Background
This page has an error in its name ----- See: Singular vs. Collection. Element Classes have to be selected by an HTML Collection (pseudo array).
It should be getElementsByClassName(), there is no such method getElementByClass() - there is, however, a get_ElementById(). There should be only a single element with an id of a particular name in a Document Object.
document.getElementsByClassName(classname)
Elements should have unique Id's within the same Document Object, you can have multiple instances of a Class Element in a document. An example is the menu buttons styled from ul li tags.
The Method returns an HTML Collection.
What W3C say:
The getElementsByClassName() method returns a collection of all elements in the document with the specified class name, as an HTMLCollection object.
The .menu class in rwd.css:
The menu that appears at the left on a desktop and at the top of the screen on a mobile has classes:
menu ul, menu li and menu li a
.menu ul {
position: fixed ;
top: 100px;
list-style-type: none;
margin: 0;
padding: 0;
width: 13%;
}
.menu li {
padding: 8px;
margin-bottom: 7px;
background-color :#E7FEcE; /*#33b5e5; */
color: #ffffff;
box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
text-align: center;
}
.menu li a { text-decoration: none;
display: block; /* needs this to take up all of width */
}
.menu li:hover { color: #c2144A; background: #E7FEaE; }