jQuery.fn.extend( {
wrapAll: function( html ) {
- var wrap;
-
- if ( this[ 0 ] ) {
- if ( jQuery.isFunction( html ) ) {
- html = html.call( this[ 0 ] );
- }
+ 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 );
+ var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);
- if ( this[ 0 ].parentNode ) {
- wrap.insertBefore( this[ 0 ] );
+ if ( this[0].parentNode ) {
+ wrap.insertBefore( this[0] );
}
wrap.map( function() {
} );
-QUnit.test( "wrapAll(Function)", function( assert ) {
- assert.expect( 5 );
-
- var prev = jQuery( "#firstp" )[ 0 ].previousSibling,
- p = jQuery( "#firstp,#first" )[ 0 ].parentNode,
- result = jQuery( "#firstp,#first" ).wrapAll( function() {
- return "<div class='red'><div class='tmp'></div></div>";
- } );
-
- assert.equal(
- result.parent().length, 1, "Check for wrapping of on-the-fly html"
- );
- assert.ok(
- jQuery( "#first" ).parent().parent().is( ".red" ), "Check if wrapper has class 'red'"
- );
- assert.ok(
- jQuery( "#firstp" ).parent().parent().is( ".red" ), "Check if wrapper has class 'red'"
- );
- assert.ok(
- jQuery( "#first" ).parent().parent().parent().is( p ), "Correct Parent"
- );
- assert.strictEqual(
- jQuery( "#first" ).parent().parent()[ 0 ].previousSibling, prev, "Correct Previous Sibling"
- );
-} );
-
-QUnit.test( "wrapAll(Function) check execution characteristics", function( assert ) {
- assert.expect( 3 );
-
- var i = 0;
-
- jQuery( "non-existent" ).wrapAll( function() {
- i++;
- return "";
- } );
-
- assert.ok(
- !i, "should not execute function argument if target element does not exist"
- );
-
- jQuery( "#firstp" ).wrapAll( function( index ) {
- assert.strictEqual(
- this, jQuery( "#firstp" )[ 0 ], "context must be the first found element"
- );
- assert.strictEqual(
- index, undefined, "index argument should not be included in function execution"
- );
- } );
-} );
-
-QUnit.test( "wrapAll(Function)", function( assert ) {
- assert.expect( 5 );
-
- var prev = jQuery( "#firstp" )[ 0 ].previousSibling,
- p = jQuery( "#firstp,#first" )[ 0 ].parentNode,
- result = jQuery( "#firstp,#first" ).wrapAll( function() {
- return "<div class='red'><div class='tmp'></div></div>";
- } );
-
- assert.equal(
- result.parent().length, 1, "Check for wrapping of on-the-fly html"
- );
- assert.ok(
- jQuery( "#first" ).parent().parent().is( ".red" ), "Check if wrapper has class 'red'"
- );
- assert.ok(
- jQuery( "#firstp" ).parent().parent().is( ".red" ), "Check if wrapper has class 'red'"
- );
- assert.ok(
- jQuery( "#first" ).parent().parent().parent().is( p ), "Correct Parent"
- );
- assert.strictEqual(
- jQuery( "#first" ).parent().parent()[ 0 ].previousSibling, prev, "Correct Previous Sibling"
- );
-} );
-
-QUnit.test( "wrapAll(Function) check execution characteristics", function( assert ) {
- assert.expect( 3 );
-
- var i = 0;
-
- jQuery( "non-existent" ).wrapAll( function() {
- i++;
- return "";
- } );
-
- assert.ok(
- !i, "should not execute function argument if target element does not exist"
- );
-
- jQuery( "#firstp" ).wrapAll( function( index ) {
- assert.strictEqual(
- this, jQuery( "#firstp" )[ 0 ], "context must be the first found element"
- );
- assert.strictEqual(
- index, undefined, "index argument should not be included in function execution"
- );
- } );
-} );
-
QUnit.test( "wrapAll(Element)", function( assert ) {
assert.expect( 3 );