Added $(...).map() functionality. (Also closes #1250, imo)

This commit is contained in:
John Resig 2007-08-31 03:26:03 +00:00
parent 5c19701a89
commit 079d651e10
2 changed files with 26 additions and 0 deletions

View file

@ -976,3 +976,23 @@ test("slice()", function() {
isSet( $("#ap a").slice(0,3), q("google", "groups", "anchor1"), "slice(0,3)" ); isSet( $("#ap a").slice(0,3), q("google", "groups", "anchor1"), "slice(0,3)" );
isSet( $("#ap a").slice(-1), q("mark"), "slice(-1)" ); 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"
);
});

View file

@ -1190,6 +1190,12 @@ jQuery.fn = jQuery.prototype = {
return this.pushStack( Array.prototype.slice.apply( this, arguments ) ); 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 * @private
* @name domManip * @name domManip