X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fmanipulation.js;h=dbf86a7b3aff9d30576de8cd1e6888a644e174fb;hb=b7d4e0e46cb2cad6f400173cd09ce44d1b8ad04e;hp=237e957e56fdb552f2b17edde0e9aca82b555310;hpb=6d23f2fd81f9f1894060a353e66effdf9738af16;p=jquery.git diff --git a/src/manipulation.js b/src/manipulation.js index 237e957..dbf86a7 100644 --- a/src/manipulation.js +++ b/src/manipulation.js @@ -4,7 +4,12 @@ var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, rxhtmlTag = /(<(\w+)[^>]*?)\/>/g, rselfClosing = /^(?:abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i, rinsideTable = /^<(thead|tbody|tfoot|colg|cap)/, - rtbody = /"; + }; jQuery.fn.extend({ text: function( text ) { @@ -32,7 +37,7 @@ jQuery.fn.extend({ jQuery(this).wrapAll( html.apply(this, arguments) ); }); } - + if ( this[0] ) { // The elements to wrap the target around var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(); @@ -156,6 +161,10 @@ jQuery.fn.extend({ return this.after( value ).remove(); }, + detach: function( selector ) { + return this.remove( selector, true ); + }, + domManip: function( args, table, callback ) { var fragment, scripts, cacheable, cached, cacheresults, first, value = args[0]; @@ -178,7 +187,7 @@ jQuery.fn.extend({ cached = true; } } - + if ( !fragment ) { fragment = (this[0].ownerDocument || this[0]).createDocumentFragment(); scripts = jQuery.clean( args, (this[0].ownerDocument || this[0]), fragment ); @@ -244,14 +253,15 @@ jQuery.each({ }); jQuery.each({ - remove: function( selector ) { + // keepData is for internal use only--do not document + remove: function( selector, keepData ) { if ( !selector || jQuery.multiFilter( selector, [ this ] ).length ) { - if ( this.nodeType === 1 ) { + if ( !keepData && this.nodeType === 1 ) { cleanData( jQuery("*", this).add(this) ); } if ( this.parentNode ) { - this.parentNode.removeChild( this ); + this.parentNode.removeChild( this ); } } }, @@ -303,11 +313,7 @@ jQuery.extend({ // Convert html string into DOM nodes if ( typeof elem === "string" ) { // Fix "XHTML"-style tags in all browsers - elem = elem.replace(rxhtmlTag, function(all, front, tag){ - return rselfClosing.test(tag) ? - all : - front + ">"; - }); + elem = elem.replace(rxhtmlTag, fcloseTag); // Trim whitespace, otherwise indexOf won't work as expected var tags = elem.replace(rleadingWhitespace, "") @@ -370,8 +376,8 @@ jQuery.extend({ } // IE completely kills leading whitespace when innerHTML is used - if ( !jQuery.support.leadingWhitespace && leadingWhitespace.test( elem ) ) { - div.insertBefore( context.createTextNode( leadingWhitespace.exec(elem)[0] ), div.firstChild ); + if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { + div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild ); } elem = jQuery.makeArray( div.childNodes );