0
|
1 define( [
|
|
2 "./core",
|
|
3 "./var/isFunction",
|
|
4 "./core/init",
|
|
5 "./manipulation", // clone
|
|
6 "./traversing" // parent, contents
|
|
7 ], function( jQuery, isFunction ) {
|
|
8
|
|
9 "use strict";
|
|
10
|
|
11 jQuery.fn.extend( {
|
|
12 wrapAll: function( html ) {
|
|
13 var wrap;
|
|
14
|
|
15 if ( this[ 0 ] ) {
|
|
16 if ( isFunction( html ) ) {
|
|
17 html = html.call( this[ 0 ] );
|
|
18 }
|
|
19
|
|
20 // The elements to wrap the target around
|
|
21 wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
|
|
22
|
|
23 if ( this[ 0 ].parentNode ) {
|
|
24 wrap.insertBefore( this[ 0 ] );
|
|
25 }
|
|
26
|
|
27 wrap.map( function() {
|
|
28 var elem = this;
|
|
29
|
|
30 while ( elem.firstElementChild ) {
|
|
31 elem = elem.firstElementChild;
|
|
32 }
|
|
33
|
|
34 return elem;
|
|
35 } ).append( this );
|
|
36 }
|
|
37
|
|
38 return this;
|
|
39 },
|
|
40
|
|
41 wrapInner: function( html ) {
|
|
42 if ( isFunction( html ) ) {
|
|
43 return this.each( function( i ) {
|
|
44 jQuery( this ).wrapInner( html.call( this, i ) );
|
|
45 } );
|
|
46 }
|
|
47
|
|
48 return this.each( function() {
|
|
49 var self = jQuery( this ),
|
|
50 contents = self.contents();
|
|
51
|
|
52 if ( contents.length ) {
|
|
53 contents.wrapAll( html );
|
|
54
|
|
55 } else {
|
|
56 self.append( html );
|
|
57 }
|
|
58 } );
|
|
59 },
|
|
60
|
|
61 wrap: function( html ) {
|
|
62 var htmlIsFunction = isFunction( html );
|
|
63
|
|
64 return this.each( function( i ) {
|
|
65 jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );
|
|
66 } );
|
|
67 },
|
|
68
|
|
69 unwrap: function( selector ) {
|
|
70 this.parent( selector ).not( "body" ).each( function() {
|
|
71 jQuery( this ).replaceWith( this.childNodes );
|
|
72 } );
|
|
73 return this;
|
|
74 }
|
|
75 } );
|
|
76
|
|
77 return jQuery;
|
|
78 } );
|