как сделать JQuery каждый номер - PullRequest
7 голосов
/ 05 сентября 2010

Это мой код:

$.each(3, function(n) {
    alert(n);
});

Я хочу предупредить три раза, но это не работает. Что я могу сделать?

Ответы [ 3 ]

19 голосов
/ 05 сентября 2010

each должен работать на объекте.Попробуйте создать массив длиной 3, например,

$.each(new Array(3),
       function(n){alert(n);}
);

Конечно, я не вижу причины избегать нормального Javascript.

for (var n = 0; n < 3; ++ n)
   alert(n);
3 голосов
/ 06 сентября 2010

Поздний ответ, но другой вариант - создать прототип Number с помощью метода, который будет вызывать обратный вызов много раз.

Number.prototype.loop = function(cb) {
    for (var i = 0; i < this; i++) {
        cb.call(this, i);
    }
    return this + 0;
};

Затем вызвать его так:

(3).loop(i => alert(i))

Однако следует отметить, что модифицировать стандартные прототипы, подобные этой, считается плохой практикой.См. Раздел на этой странице MDN под названием Плохая практика: расширение собственных прототипов .

RightJS делает что-то подобное.(Другие, вероятно, тоже.)

1 голос
/ 05 сентября 2010

Вы не можете.
$.each может перебирать только массивы или объекты. Вы ищете петлю for:

for(var n = 0; n < 5; n++) {
    alert(n);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...