Fixed wrapping of elements that hold text nodes. Thanks to David Flanagan for the...
[jquery.git] / src / manipulation.js
index 59973de..b5ace4d 100644 (file)
@@ -18,6 +18,10 @@ jQuery.fn.extend({
        },
 
        wrapAll: function( html ) {
+               if(jQuery.isFunction(html)) {
+                       return this.each(function() { jQuery(this).wrapAll(html.call(this)); });
+               }
+               
                if ( this[0] ) {
                        // The elements to wrap the target around
                        var wrap = jQuery( html, this[0].ownerDocument ).clone();
@@ -28,7 +32,7 @@ jQuery.fn.extend({
                        wrap.map(function(){
                                var elem = this;
 
-                               while ( elem.firstChild )
+                               while ( elem.firstChild && elem.firstChild.nodeType === 1 )
                                        elem = elem.firstChild;
 
                                return elem;