mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
parent
ae30fb6c27
commit
3dcee02160
18
src/wrap.js
18
src/wrap.js
@ -7,18 +7,18 @@ define([
|
||||
|
||||
jQuery.fn.extend({
|
||||
wrapAll: function( html ) {
|
||||
if ( jQuery.isFunction( html ) ) {
|
||||
return this.each(function(i) {
|
||||
jQuery(this).wrapAll( html.call(this, i) );
|
||||
});
|
||||
}
|
||||
var wrap;
|
||||
|
||||
if ( this[ 0 ] ) {
|
||||
if ( jQuery.isFunction( html ) ) {
|
||||
html = html.call( this[ 0 ] );
|
||||
}
|
||||
|
||||
if ( this[0] ) {
|
||||
// The elements to wrap the target around
|
||||
var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);
|
||||
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() {
|
||||
|
@ -149,6 +149,66 @@ test( "wrapAll(String)", function() {
|
||||
|
||||
});
|
||||
|
||||
test( "wrapAll(Function)", 5, function() {
|
||||
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>";
|
||||
});
|
||||
|
||||
equal( result.parent().length, 1, "Check for wrapping of on-the-fly html" );
|
||||
ok( jQuery( "#first" ).parent().parent().is( ".red" ), "Check if wrapper has class 'red'" );
|
||||
ok( jQuery( "#firstp" ).parent().parent().is( ".red" ), "Check if wrapper has class 'red'" );
|
||||
ok( jQuery( "#first" ).parent().parent().parent().is( p ), "Correct Parent" );
|
||||
strictEqual( jQuery( "#first" ).parent().parent()[ 0 ].previousSibling, prev, "Correct Previous Sibling" );
|
||||
});
|
||||
|
||||
test( "wrapAll(Function) check execution characteristics", 3, function() {
|
||||
var i = 0;
|
||||
|
||||
jQuery( "non-existent" ).wrapAll(function() {
|
||||
i++;
|
||||
return "";
|
||||
});
|
||||
|
||||
ok( !i, "should not execute function argument if target element does not exist" );
|
||||
|
||||
jQuery( "#firstp" ).wrapAll(function( index ) {
|
||||
strictEqual( this, jQuery( "#firstp" )[ 0 ], "context must be the first found element" );
|
||||
strictEqual( index, undefined, "index argument should not be included in function execution" );
|
||||
});
|
||||
});
|
||||
|
||||
test( "wrapAll(Function)", 5, function() {
|
||||
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>";
|
||||
});
|
||||
|
||||
equal( result.parent().length, 1, "Check for wrapping of on-the-fly html" );
|
||||
ok( jQuery( "#first" ).parent().parent().is( ".red" ), "Check if wrapper has class 'red'" );
|
||||
ok( jQuery( "#firstp" ).parent().parent().is( ".red" ), "Check if wrapper has class 'red'" );
|
||||
ok( jQuery( "#first" ).parent().parent().parent().is( p ), "Correct Parent" );
|
||||
strictEqual( jQuery( "#first" ).parent().parent()[ 0 ].previousSibling, prev, "Correct Previous Sibling" );
|
||||
});
|
||||
|
||||
test( "wrapAll(Function) check execution characteristics", 3, function() {
|
||||
var i = 0;
|
||||
|
||||
jQuery( "non-existent" ).wrapAll(function() {
|
||||
i++;
|
||||
return "";
|
||||
});
|
||||
|
||||
ok( !i, "should not execute function argument if target element does not exist" );
|
||||
|
||||
jQuery( "#firstp" ).wrapAll(function( index ) {
|
||||
strictEqual( this, jQuery( "#firstp" )[ 0 ], "context must be the first found element" );
|
||||
strictEqual( index, undefined, "index argument should not be included in function execution" );
|
||||
});
|
||||
});
|
||||
|
||||
test( "wrapAll(Element)", function() {
|
||||
|
||||
expect( 3 );
|
||||
|
Loading…
Reference in New Issue
Block a user