JavaScript函数,该函数处理由ID选择的单个元素和由类选择的多个元素
我想编写一个JS通用函数,它可以无差别地处理由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
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查找
按类别查找