Вы, вероятно, можете просто выполнить sh через обертку для функции querySelectorAll()
, которая является встроенной функцией, используемой для простого запроса DOM:
function myFunction(selector) {
return document.querySelectorAll(`#${selector}`) || document.querySelectorAll(`.${selector}`);
}
Это вернет NodeList
соответствующих элементов (сначала проверяется заданный атрибут id
и, если это не удается, предпринимается попытка найти какие-либо элементы с тем же именем, что и атрибут class
).
Поэтому, если вы хотите выполнить какой-то процесс, вы можете просто добавить итератор к результату, если таковой существует, и выполнить его для каждого элемента:
function myFunction(selector) {
let nodes = document.querySelectorAll(`#${selector}`) || document.querySelectorAll(`.${selector}`);
if(nodes) {
for (var i = 0, i < nodes.length; i++) {
process(nodes[i]);
}
}
}
Пример
function myFunction(selector) {
return document.querySelectorAll(`#${selector}`) || document.querySelectorAll(`.${selector}`);
}
<div id='id'>id</div>
<div class='class'>class</div>
<br />
<button onclick='alert(myFunction("id"));'>Find By ID</button>
<button onclick='alert(myFunction("class"));'>Find By Class</button>