JavaScript函数,该函数处理由ID选择的单个元素和由类选择的多个元素

JavaScript函数,该函数处理由ID选择的单个元素和由类选择的多个元素,javascript,element,Javascript,Element,我想编写一个JS通用函数,它可以无差别地处理由ID选择的单个元素或由类选择的多个元素 var el1 = document.getElementById('myId'); myFunction(el1) var el2 = document.getElementsByClassName('myClass'); myFunction(el2) 我的问题是写函数。我开始这样做: function myFunction(el) { if (typeof el == undefined) pr

我想编写一个JS通用函数,它可以无差别地处理由ID选择的单个元素或由类选择的多个元素

var el1 = document.getElementById('myId');
myFunction(el1)
var el2 = document.getElementsByClassName('myClass');
myFunction(el2)
我的问题是写函数。我开始这样做:

function myFunction(el) {
    if (typeof el == undefined) process(el);
    else {
        for (let i=0 ; i<el.length ; i++)
            process(el[i]);
    }
}
函数myFunction(el){
如果(类型el==未定义)过程(el);
否则{

对于(设i=0;i),您可能只需通过函数的包装器即可实现这一点,该包装器是用于轻松查询DOM的内置函数:

function myFunction(selector) {
    return document.querySelectorAll(`#${selector}`) || document.querySelectorAll(`.${selector}`);
}
这将返回一组匹配元素(首先检查给定的
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]);
         }
     }
}
id
班

按ID查找
按类查找
您可能只需通过函数的包装器即可完成此操作,该包装器是一个内置函数,用于轻松查询DOM:

function myFunction(selector) {
    return document.querySelectorAll(`#${selector}`) || document.querySelectorAll(`.${selector}`);
}
这将返回一组匹配元素(首先检查给定的
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]);
         }
     }
}
id
班

按ID查找 按类别查找