diff options
author | Dave Methvin <dave.methvin@gmail.com> | 2013-04-05 17:30:48 -0400 |
---|---|---|
committer | Dave Methvin <dave.methvin@gmail.com> | 2013-04-06 16:00:58 -0400 |
commit | 5031c9db4bf22cc04472346eeee8f25a61c5ee68 (patch) | |
tree | ebc223d2e27944c85773628bf01a6cf5adcb82a4 /src | |
parent | 1114611f77ee9cd203db65b120d397dbe2f14d14 (diff) | |
download | jquery-5031c9db4bf22cc04472346eeee8f25a61c5ee68.tar.gz jquery-5031c9db4bf22cc04472346eeee8f25a61c5ee68.zip |
Fix #13741. Make wrap/unwrap methods optional. Close gh-1222.
Diffstat (limited to 'src')
-rw-r--r-- | src/manipulation.js | 68 | ||||
-rw-r--r-- | src/wrap.js | 69 |
2 files changed, 69 insertions, 68 deletions
diff --git a/src/manipulation.js b/src/manipulation.js index a5a1a3975..5cfc853be 100644 --- a/src/manipulation.js +++ b/src/manipulation.js @@ -37,74 +37,6 @@ jQuery.fn.extend({ }, null, value, arguments.length ); }, - 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(); - }, - append: function() { return this.domManip(arguments, true, function( elem ) { if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { diff --git a/src/wrap.js b/src/wrap.js new file mode 100644 index 000000000..5968adbc6 --- /dev/null +++ b/src/wrap.js @@ -0,0 +1,69 @@ +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(); + } +}); |