使用javascript计数迭代var名称

时间:2013-03-25 15:46:37

标签: javascript loops var

我需要编写一个循环,它将迭代以下两个语句44次。

    window.onload = function() {
        var input1 = document.getElementById("alpha1");
        var input2 = document.getElementById("alpha2");
        var input3 = document.getElementById("alpha3");
        input1.onkeypress = alphaFilterKeypress;
        input2.onkeypress = alphaFilterKeypress;
        input3.onkeypress = alphaFilterKeypress;
    };

2 个答案:

答案 0 :(得分:1)

它没有问题:

for (var i = 1; i < 45; i++) {
    var input = document.getElementById("alpha" + i);
    input.onkeypress = alphaFilterKeypress;
}

答案 1 :(得分:1)

为什么不委托活动,而不是循环这44次?附加一个侦听器,并检查id是否与给定的模式匹配

document.body.addEventlistener('keypress', alphaFilterKeypress, false);

您必须更改功能定义 - 添加此检查:

function alphaFilterKeypress(e)
{
    e = e || window.event;
    var target = e.target || e.srcElement;
    if (!target.id.match(/alpha[0-9]+/))
    {//don't handle the event
        //event was fired on an element with another (or no) id
        return e;//don't handle it here
    }
    //an element with id alpha[number] fired the event
    //handle the event
}

on this previous SO question可以看出,您使用的“key”事件的类型非常重要。如果keypress事件没有获取退格键,控件等键,那么您可能希望使用keydown事件。
玩弄它,并找出最适合您需要的活动套件