Added $(...).map() functionality. (Also closes #1250, imo)
[jquery.git] / src / jquery / jquery.js
index 7c0562a..8180a4e 100644 (file)
@@ -1182,9 +1182,19 @@ jQuery.fn = jQuery.prototype = {
                        this.empty().append( val );
        },
 
+       replaceWith: function( val ) {
+               return this.after( val ).remove();
+       },
+
        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
@@ -1434,7 +1444,7 @@ jQuery.extend({
                                        fn.call( obj[i], i, obj[i] );
                        else
                                for ( var i = 0, ol = obj.length, val = obj[0]; 
-                                       i < ol && fn.call(val,i,val) !== false; val = obj[++i] );
+                                       i < ol && fn.call(val,i,val) !== false; val = obj[++i] ){}
                }
 
                return obj;
@@ -1857,7 +1867,7 @@ jQuery.extend({
                // If a string is passed in for the function, make a function
                // for it (a handy shortcut)
                if ( typeof fn == "string" )
-                       fn = eval("function(a,i){return " + fn + "}");
+                       fn = eval("false||function(a,i){return " + fn + "}");
 
                var result = [];
 
@@ -1911,7 +1921,7 @@ jQuery.extend({
                // If a string is passed in for the function, make a function
                // for it (a handy shortcut)
                if ( typeof fn == "string" )
-                       fn = eval("function(a){return " + fn + "}");
+                       fn = eval("false||function(a){return " + fn + "}");
 
                var result = [];
 
@@ -2227,7 +2237,8 @@ jQuery.each({
        appendTo: "append",
        prependTo: "prepend",
        insertBefore: "before",
-       insertAfter: "after"
+       insertAfter: "after",
+       replaceAll: "replaceWith"
 }, function(i,n){
        jQuery.fn[ i ] = function(){
                var a = arguments;
@@ -2422,6 +2433,7 @@ jQuery.each( {
  * @param String str The string that will be contained within the text of an element.
  * @cat DOM/Traversing
  */
+// DEPRECATED
 jQuery.each( [ "eq", "lt", "gt", "contains" ], function(i,n){
        jQuery.fn[ n ] = function(num,fn) {
                return this.filter( ":" + n + "(" + num + ")", fn );