Tak jak rzucali słowami kluczowymi wyżej, stosujesz albo trick, który zwie się event delegation, albo zbierasz elementy w tablice i przy iteracji przypisujesz im konkretne zdarzenie.
Jeśli chodzi o to pierwsze: przypisujesz obsługę zdarzenia np. do dokumentu (albo jakiegoś innego containera), po czym sprawdzasz, czy cel zdarzenia odnosi się do któregoś z elementów (w tym wypadku, tablica z identyfikatorami elementów zawiera ten, który został kliknięty:
document.addEventListener('click', function(event) {
var targetsId = ['idv1', 'idv2', 'idv3'];
if (targetsId.indexOf(event.target.id) > -1) someFunction();
}, false);
Natomiast w wypadku drugim, możesz posłużyć się wyżej wymienioną metodą document.querySelectorAll - problem leży w tym, że nie zwraca ona typu Array, tylko NodeList, dlatego chcąc wykorzystać metodę forEach w tablicy musisz zrzucić ją do typu tablicy (chociażby przy użyciu Array.from):
Array.from(document.querySelectorAll('#idv1, #idv2, #idv3')).forEach(function(element) {
element.addEventListener('click', someFunction, false);
});
chociaż sama metoda Array.from jest standardem ES6, który mimo tego, że obowiązuje, to nie jest obsługiwany równie dobrze w starych przeglądarkach, dlatego do sprowadzania typu NodeList do typu Array używa się takiej sztuczki:
var nodeList = document.querySelectorAll('div');
var nodeArray = [].slice.call(nodeList);
co w Twoim przypadku sprowadza się do:
[].slice.call(document.querySelectorAll('#idv1, #idv2, #idv3')).forEach(function(element) {
element.addEventListener('click', someFunction, false);
});