数组foreach()函数

时间:2019-08-08 12:49:27

标签: javascript jquery

我声明了数组并在其中添加了变量,所以现在我想用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();

4 个答案:

答案 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");
}));