X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=src%2Fmanipulation.js;h=20a107565e01273924c990fe10b5ca2032aaacad;hb=48e9a3999596c2ee1f4470a78637de8f27e3b219;hp=b026672df7e789acfc103757d90f0cdccd027d3d;hpb=0c4418bbc4022ed5cb746af364ff1c0d7c331209;p=jquery.git diff --git a/src/manipulation.js b/src/manipulation.js index b026672..20a1075 100644 --- a/src/manipulation.js +++ b/src/manipulation.js @@ -18,9 +18,13 @@ jQuery.fn.extend({ }, wrapAll: function( html ) { + if(jQuery.isFunction(html)) { + return this.each(function() { jQuery(this).wrapAll(html.call(this)); }); + } + if ( this[0] ) { // The elements to wrap the target around - var wrap = jQuery( html, this[0].ownerDocument ).clone(); + var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(); if ( this[0].parentNode ) wrap.insertBefore( this[0] ); @@ -28,7 +32,7 @@ jQuery.fn.extend({ wrap.map(function(){ var elem = this; - while ( elem.firstChild ) + while ( elem.firstChild && elem.firstChild.nodeType === 1 ) elem = elem.firstChild; return elem; @@ -138,9 +142,17 @@ jQuery.fn.extend({ domManip: function( args, table, callback ) { var fragment, scripts, cacheable, cached, cacheresults, first; + var value = args[0]; + + if ( jQuery.isFunction(value) ) { + return this.each(function() { + args[0] = value.call(this); + return jQuery(this).domManip( args, table, callback ); + }); + }; if ( this[0] ) { - if ( args.length === 1 && typeof args[0] === "string" && args[0].length < 512 ) { + if ( args.length === 1 && typeof args[0] === "string" && args[0].length < 512 && args[0].indexOf("]*?)\/>/g, function(all, front, tag){ - return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? + return /^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i.test(tag) ? all : front + ">"; }); @@ -290,7 +302,7 @@ jQuery.extend({ !tags.indexOf("", "" ] || - tags.match(/^<(thead|tbody|tfoot|colg|cap)/) && + /^<(thead|tbody|tfoot|colg|cap)/.test(tags) && [ 1, "", "
" ] || !tags.indexOf("