diff --git a/src/jquery/coreTest.js b/src/jquery/coreTest.js index e919284975..40be7f8705 100644 --- a/src/jquery/coreTest.js +++ b/src/jquery/coreTest.js @@ -976,3 +976,23 @@ test("slice()", function() { isSet( $("#ap a").slice(0,3), q("google", "groups", "anchor1"), "slice(0,3)" ); isSet( $("#ap a").slice(-1), q("mark"), "slice(-1)" ); }); + +test("map()", function() { + expect(2); + + isSet( + $("#ap").map(function(){ + return $(this).find("a").get(); + }), + q("google", "groups", "anchor1", "mark"), + "Array Map" + ); + + isSet( + $("#ap > a").map(function(){ + return this.parentNode; + }), + q("ap","ap","ap"), + "Single Map" + ); +}); diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index 8988c5ee10..8180a4ea21 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -1189,6 +1189,12 @@ jQuery.fn = jQuery.prototype = { slice: function() { return this.pushStack( Array.prototype.slice.apply( this, arguments ) ); }, + + map: function(fn){ + return this.pushStack(jQuery.map( this, function(elem,i){ + return fn.call( elem, i, elem ); + })); + }, /** * @private