Returns an array-like object of all child elements which have all of the given class names. When called on the document object, the complete document is searched, including the root node. You may also call getElementsByClassName()
on any element; it will return only elements which are descendants of the specified root element with the given class names.
var elements = document.getElementsByClassName(names); // or: var elements = rootElement.getElementsByClassName(names);
HTMLCollection
of found elements.Get all elements that have a class of 'test':
document.getElementsByClassName('test')
Get all elements that have both the 'red' and 'test' classes:
document.getElementsByClassName('red test')
Get all elements that have a class of 'test', inside of an element that has the ID of 'main':
document.getElementById('main').getElementsByClassName('test')
Get the first element with a class of 'test', or undefined
if there is no matching element:
document.getElementsByClassName('test')[0]
We can also use methods of Array.prototype on any HTMLCollection
by passing the HTMLCollection as the method's this value. Here we'll find all div elements that have a class of 'test':
var testElements = document.getElementsByClassName('test'); var testDivs = Array.prototype.filter.call(testElements, function(testElement){ return testElement.nodeName === 'DIV'; });
This is the most commonly used method of operation.
<html> <body> <div id="parent-id"> <p>hello world 1</p> <p class="test">hello world 2</p> <p>hello world 3</p> <p>hello world 4</p> </div> <script> var parentDOM = document.getElementById("parent-id"); var test = parentDOM.getElementsByClassName("test"); // a list of matching elements, *not* the element itself console.log(test); //HTMLCollection[1] var testTarget = parentDOM.getElementsByClassName("test")[0]; // the first element, as we wanted console.log(testTarget); //<p class="test">hello world 2</p> </script> </body> </html>
Desktop | ||||||
---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | |
Basic support | Yes | Yes | 4 | 9 | Yes | Yes |
Mobile | |||||||
---|---|---|---|---|---|---|---|
Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | iOS Safari | Samsung Internet | |
Basic support | Yes | Yes | Yes | 4 | Yes | Yes | ? |
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/document/getElementsByClassName