Skip to content

Instantly share code, notes, and snippets.

@lazywithclass
Created December 21, 2011 16:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lazywithclass/1506587 to your computer and use it in GitHub Desktop.
Save lazywithclass/1506587 to your computer and use it in GitHub Desktop.
Quick each (took from here https://gist.github.com/500145 without spaces)
// The `quickEach` method will pass a non-unique jQuery instance
// to the callback meaning that there will be no need to instantiate
// a fresh jQuery instance on each iteration. Most of the slow-down
// inherent in jQuery's native iterator method (`each`) is the constant
// need to have access to jQuery's methods, and so most developers
// see constructing multiple instances as no issue... E.g.
// $(...).each(function(){ $(this)... $(this)... $(this)... });
// A better approach would be `quickEach`.
jQuery.fn.quickEach = (function(){
var jq = jQuery([1]);
return function(c) {
var i = -1, el, len = this.length;
try {
while (
++i < len &&
(el = jq[0] = this[i]) &&
c.call(jq, i, el) !== false
);
} catch(e){
delete jq[0];
throw e;
}
delete jq[0];
return this;
};
}());
// E.g.
jQuery('div').quickEach(function(i){
// `this` is a jQuery object
this.attr('id', 'd' + i).css('color', 'red'); // etc.
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment