rxhtmlTag = /(<(\w+)[^>]*?)\/>/g,
rselfClosing = /^(?:abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i,
rinsideTable = /^<(thead|tbody|tfoot|colg|cap)/,
- rtbody = /<tbody/i;
+ rtbody = /<tbody/i,
+ fcloseTag = function(all, front, tag){
+ return rselfClosing.test(tag) ?
+ all :
+ front + "></" + tag + ">";
+ };
jQuery.fn.extend({
text: function( text ) {
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();
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];
cached = true;
}
}
-
+
if ( !fragment ) {
fragment = (this[0].ownerDocument || this[0]).createDocumentFragment();
scripts = jQuery.clean( args, (this[0].ownerDocument || this[0]), fragment );
});
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 );
}
}
},
// 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 + "></" + tag + ">";
- });
+ elem = elem.replace(rxhtmlTag, fcloseTag);
// Trim whitespace, otherwise indexOf won't work as expected
var tags = elem.replace(rleadingWhitespace, "")
}
// 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 );