我声明了数组并在其中添加了变量,所以现在我想用javascript创建一键式函数,但是我不知道如何尝试但不起作用
function volumeUpDown(){
let a = $('._1');
let b = $('._2');
let c = $('._3');
let d = $('._4');
let e = $('._5');
let f = $('._6');
let g = $('._7');
let ar = [a,b,c,d,e,f,g];
ar.forEach().click(function(){
$(this).addClass('volactive');
})
}
volumeUpDown();
答案 0 :(得分:2)
您可以在一个jQuery调用中完成全部操作:
$('._1, ._2, ._3, ._4, ._5, ._6, ._7').click(function() {
$(this).addClass("volactive");
});
选择器字符串中的逗号使您可以请求将多个不同的匹配项收集到jQuery对象中。 jQuery对象已经 一个数组(排序),并且像.click()
这样的jQuery函数将对jQuery对象中的所有元素进行处理。
答案 1 :(得分:1)
仅出于动态目的,以防万一您需要有一天动态添加(仍然使用单个jQuery调用,无论如何这都是正确的方法)
$(Array.from({length: 7},(_,i) => `._{$i + 1}`).join(', ')).click(function() {
$(this).addClass("volactive")
});
第一部分将生成选择器:
const selector = Array.from({length: 7},(_,i) => `._${i + 1}`).join(', ');
console.log(selector);
答案 2 :(得分:0)
您需要获取对象并应用回调。
ar.forEach(o => o.click(function() {
$(this).addClass('volactive');
}));
答案 3 :(得分:0)
这不是您使用forEach
的方式:
ar.forEach(elem => elem.click(function() {
$(this).addClass("volactive");
}));