| define([ |
| "./core", |
| "./core/init", |
| "./manipulation", // clone |
| "./traversing" // parent, contents |
| ], function( jQuery ) { |
| |
| jQuery.fn.extend({ |
| wrapAll: function( html ) { |
| var wrap; |
| |
| if ( jQuery.isFunction( html ) ) { |
| return this.each(function( i ) { |
| jQuery( this ).wrapAll( html.call(this, i) ); |
| }); |
| } |
| |
| if ( this[ 0 ] ) { |
| |
| // The elements to wrap the target around |
| wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); |
| |
| if ( this[ 0 ].parentNode ) { |
| wrap.insertBefore( this[ 0 ] ); |
| } |
| |
| wrap.map(function() { |
| var elem = this; |
| |
| while ( elem.firstElementChild ) { |
| elem = elem.firstElementChild; |
| } |
| |
| return elem; |
| }).append( this ); |
| } |
| |
| return this; |
| }, |
| |
| wrapInner: function( html ) { |
| if ( jQuery.isFunction( html ) ) { |
| return this.each(function( i ) { |
| jQuery( this ).wrapInner( html.call(this, i) ); |
| }); |
| } |
| |
| return this.each(function() { |
| var self = jQuery( this ), |
| contents = self.contents(); |
| |
| if ( contents.length ) { |
| contents.wrapAll( html ); |
| |
| } else { |
| self.append( html ); |
| } |
| }); |
| }, |
| |
| wrap: function( html ) { |
| var isFunction = jQuery.isFunction( html ); |
| |
| return this.each(function( i ) { |
| jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); |
| }); |
| }, |
| |
| unwrap: function() { |
| return this.parent().each(function() { |
| if ( !jQuery.nodeName( this, "body" ) ) { |
| jQuery( this ).replaceWith( this.childNodes ); |
| } |
| }).end(); |
| } |
| }); |
| |
| return jQuery; |
| }); |