'How to add an event listener to multiple element IDs

Below is my approach to add listener to multiple ids.

function onImageClick(event) {
//i am not getting below console msg
  console.log('Event Registered');
}

var queryResult = document.getElementsByClassName('ui-grid-cell');
Array.from(queryResult).forEach(function(element) {
  document.getElementById(element.id).addEventListener("click",onImageClick);
});

Above approach is not working for me. what mistake i am doing?



Solution 1:[1]

This approach should work :

var queryResult = document.getElementsByClassName('ui-grid-cell');
Array.from(queryResult).forEach(function(element) {
    element.addEventListener("click",onImageClick);
});

Solution 2:[2]

this will works

 function onImageClick(event) {
          alert('Event Registered');
        }
        
        var queryResult = document.getElementsByClassName('ui-grid-cell');
        
        for(var i=0;i<queryResult.length;i++){
        if(queryResult[i].id && queryResult[i].id !=""){
            document.getElementById(queryResult[i].id).addEventListener("click",onImageClick);
        }
        }
img{
margin:15px;
padding:10px;
border-radius:10px;
box-shadow:1px 1px 1px #ccc;
}
<img title='this should listen' src='https://www.google.com.eg/images/nav_logo242.png' class='ui-grid-cell' id='div1'/>
<img src='https://www.google.com.eg/images/nav_logo242.png' class='ui-grid-cell'/>
<img title='this should listen' src='https://www.google.com.eg/images/nav_logo242.png' class='ui-grid-cell' id='div2'/>
<img src='https://www.google.com.eg/images/nav_logo242.png' class='ui-grid-cell'/>

Solution 3:[3]

Your same code is working fine, perhaps you missed putting id to the image?

function onImageClick(event) {
//i am not getting below console msg
  console.log('Event Registered');
}

var queryResult = document.getElementsByClassName('ui-grid-cell');
Array.from(queryResult).forEach(function(element) {
  document.getElementById(element.id).addEventListener("click",onImageClick);
});
<img src="https://dummyimage.com/50x50/000/fff"
     class="ui-grid-cell" id="one">
<img src="https://dummyimage.com/50x50/ccc/fff"
class="ui-grid-cell" id="two">
<img src="https://dummyimage.com/50x50/123456/fff"
class="ui-grid-cell" id="three">

Solution 4:[4]

If you use JQuery just use this

$(".ui-grid-cell").click(function(){

});

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 runit
Solution 2 Mamdouh Saeed
Solution 3 Jordi Flores
Solution 4 Ahmad