Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to make jquery each a number

This is my code:

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

I want to alert three times but it doesn't work. What can I do?

like image 322
zjm1126 Avatar asked Sep 05 '10 19:09

zjm1126


3 Answers

each must operate on an object. Try to create an array of length 3, e.g.

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

Of course, I don't see the reason to avoid normal Javascript.

for (var n = 0; n < 3; ++ n)
   alert(n);
like image 68
kennytm Avatar answered Nov 15 '22 22:11

kennytm


Late answer, but another option would be to prototype the Number with a method that would call a callback that many times.

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

Then call it like this:

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

However, it should be noted it is considered bad practice to modify standard prototypes like this. See the section on this MDN page called Bad practice: Extension of native prototypes.

RightJS does something like this. (Others probably too.)

like image 31
user113716 Avatar answered Nov 16 '22 00:11

user113716


You can't.
$.each can only iterate over arrays or objects. You're looking for the for loop:

for(var n = 0; n < 5; n++) {
    alert(n);
}
like image 34
SLaks Avatar answered Nov 16 '22 00:11

SLaks