X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fmanipulation.js;h=93950de0f2472ba298e6ff401e00c8bf21ffbf7f;hb=388a00fe918c2ec759bd33c34bfc13aabfe413d0;hp=01c6b0ba70a0b6df1d68aab44230a73c4c5ee977;hpb=b8076a914ba9d400dc9c48d866b145df6fabafcf;p=jquery.git diff --git a/src/manipulation.js b/src/manipulation.js index 01c6b0b..93950de 100644 --- a/src/manipulation.js +++ b/src/manipulation.js @@ -296,7 +296,7 @@ jQuery.fn.extend({ }, domManip: function( args, table, callback ) { - var results, first, value = args[0], scripts = []; + var results, first, value = args[0], scripts = [], fragment; // We can't cloneNode fragments that contain checked, in WebKit if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) { @@ -320,8 +320,14 @@ jQuery.fn.extend({ } else { results = buildFragment( args, this, scripts ); } - - first = results.fragment.firstChild; + + fragment = results.fragment; + + if ( fragment.childNodes.length === 1 ) { + first = fragment = fragment.firstChild; + } else { + first = fragment.firstChild; + } if ( first ) { table = table && jQuery.nodeName( first, "tr" ); @@ -331,14 +337,14 @@ jQuery.fn.extend({ table ? root(this[i], first) : this[i], - results.cacheable || this.length > 1 || i > 0 ? - results.fragment.cloneNode(true) : - results.fragment + i > 0 || results.cacheable || this.length > 1 ? + fragment.cloneNode(true) : + fragment ); } } - if ( scripts ) { + if ( scripts.length ) { jQuery.each( scripts, evalScript ); } }