comparison default/node_modules/jquery/src/wrap.js @ 0:1d038bc9b3d2 default tip

Up:default
author Liny <dev@neowd.com>
date Sat, 31 May 2025 09:21:51 +0800
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:1d038bc9b3d2
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 } );