From 29bf601f3495ced43fbb6152bf9306f2618bb955 Mon Sep 17 00:00:00 2001 From: John Resig Date: Sat, 10 Jan 2009 01:07:59 +0000 Subject: [PATCH] Fixed an issue with script nodes being removed incorrectly, fixes #3737. --- src/core.js | 2 +- test/unit/core.js | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/core.js b/src/core.js index fe5dbc6bf0..4047170ebe 100644 --- a/src/core.js +++ b/src/core.js @@ -922,7 +922,7 @@ jQuery.extend({ if ( fragment ) { for ( var i = 0; ret[i]; i++ ) { if ( jQuery.nodeName( ret[i], "script" ) ) { - scripts.push( ret[i].parentNode.removeChild( ret[i] ) ); + scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] ); } else { if ( ret[i].nodeType === 1 ) ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) ); diff --git a/test/unit/core.js b/test/unit/core.js index ef36c4f784..1ec3487d0a 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -899,7 +899,7 @@ test("append(String|Element|Array<Element>|jQuery)", function() { }); test("appendTo(String|Element|Array<Element>|jQuery)", function() { - expect(6); + expect(7); var defaultText = 'Try them out:' jQuery('buga').appendTo('#first'); equals( jQuery("#first").text(), defaultText + 'buga', 'Check if text appending works' ); @@ -915,6 +915,9 @@ test("appendTo(String|Element|Array<Element>|jQuery)", function() { jQuery([document.getElementById('first'), document.getElementById('yahoo')]).appendTo('#sap'); equals( expected, jQuery('#sap').text(), "Check for appending of array of elements" ); + reset(); + ok( jQuery(document.createElement("script")).appendTo("body").length, "Make sure a disconnected script can be appended." ); + reset(); expected = document.querySelectorAll ? "This link has class=\"blog\": Simon Willison's WeblogYahooTry them out:" :