tuiHoneyPot

front and back end of my TUI honeypot
Log | Files | Refs | README

wrap.js (1477B)


      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 } );