'How can I select elements with a class using getElementsByClassName and click them?

I cant seem to click all of the elements.

document.getElementsByClassName('node closed')[0].click();

This works but will only click on the first element. I need this to click all of the elements with class 'node closed'.

Thanks



Solution 1:[1]

[0] means only the first element of the node list returned by getElementsByClassName.

You have to do getElementsByClassName and iterate through all the matched elements like shown below:

var el = document.getElementsByClassName('node closed');
for (var i=0;i<el.length; i++) {
    el[i].click();
}

Working Demo

Solution 2:[2]

iterate the result in a loop and assign click to each elements:

var list=document.getElementsByClassName('node closed')
for(var i=0;i<list.length;i++){
list[i].click()
}

Solution 3:[3]

document.getElementsByClassName has some issues in IE

use jquery

window.onload=function(){

$(.yourclass).each(function(){

 $(this).trigger('click');

});

}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 Nishad K Ahamed
Solution 3 Voonic