Plugins

User login
Can't find a Plugin?

Can't find a Plugin you are looking for? Check out the jQuery Wiki page.

Are you a plugin developer? Please move your plugin over to this site.

Website Bug or Feature Request?

Found a bug on the new jQuery Plugin website? Have a feature request?

Submit it to the jQuery Plugin website issue queue to ensure it is noticed!

Collection


Average rating
(4 votes)

This plugin generates generic collection classes, that work almost exactly as jQuery does.
These collections include all those jQuery functions, that are used to manipulate the collection itself.

The included built-in functions are:

add, andSelf, attr, each, end, eq, extend, filter, get, implement, include, index, init, is, map, not, pushStack, setArray, size and slice.

Every collection will have a build() function, that will create a new collection class, that inherits from the caller. $.collection is a collection class by itself. So other collections will inherit from it, or its subclasses.

With this plugin, you can manipulate native data types like String or Array, with your custom methods, without actually modifying their prototype. This is shown in some of the examples below.

If you want additional information and more details about some of the methods.
Check this explanatory text, also included in the release.

Examples

$.collection(1,2,3,4).filter([2,3]).eq(1);//--> [ 3 ]

$.number = $.collection.build();
$.number.fn.sum = function(){
    var n = 0;
    this.each(function(){ n += this; });
    return n;
};
$.number(1,2,3,4).add(5).not(function(){
    return this <= 2;
}).sum();//yields --> 12 ( 3 + 4 + 5 )

$.array = $.collection.build();
$.array.fn.include( Array.prototype, 'join,push' );
var $arr = $.array('I','like','xyz','jQuery').add('very').not('xyz');
$arr.push( 'much' );
$arr.join(' ');// yields --> 'I like jQuery very much'

var Nodes = $.collection.build();
Nodes.fn.init = function( elems ){
    elems = document.getElementsByTagName(elems);
    return this.setArray( $.makeArray(elems) );
};
Nodes('body').add('script').attr('className','node');//-->[ <body>, <script>, <script> ]

var MyString = $.collection.build();
MyString.implement( String.prototype, 'replace,toUpperCase');
MyString('jQuery','Quack').replace('Q','X').toUpperCase()// --> [ 'JXUERY', 'XUACK' ]

Please, make sure to upgrade to 1.0.3
The plugin is very easy to master and is relatively small, less than 2KB packed

Releases

Official releasesDateSizeLinksStatus
1.0.32008-Jan-296.35 KBRecommended for 1.2.xThis is currently the recommended release for 1.2.x.