]> source.dussan.org Git - jquery.git/commitdiff
Do not call getElements on a script tag. Avoids unnecessary execution. Fixes #10176.
authortimmywil <timmywillisn@gmail.com>
Wed, 12 Oct 2011 04:06:30 +0000 (00:06 -0400)
committertimmywil <timmywillisn@gmail.com>
Wed, 12 Oct 2011 04:06:54 +0000 (00:06 -0400)
src/manipulation.js
test/unit/manipulation.js

index 0f7f9dd9ba833aac3e16642abdbaa5dba282b61e..11dca31000dc63b700dbb341570d7292ed8a458f 100644 (file)
@@ -530,10 +530,10 @@ jQuery.each({
 });
 
 function getAll( elem ) {
-       if ( "getElementsByTagName" in elem ) {
+       if ( typeof elem.getElementsByTagName !== "undefined" ) {
                return elem.getElementsByTagName( "*" );
 
-       } else if ( "querySelectorAll" in elem ) {
+       } else if ( typeof elem.querySelectorAll !== "undefined" ) {
                return elem.querySelectorAll( "*" );
 
        } else {
@@ -549,9 +549,11 @@ function fixDefaultChecked( elem ) {
 }
 // Finds all inputs and passes them to fixDefaultChecked
 function findInputs( elem ) {
-       if ( jQuery.nodeName( elem, "input" ) ) {
+       var nodeName = (elem.nodeName || "").toLowerCase();
+       if ( nodeName === "input" ) {
                fixDefaultChecked( elem );
-       } else if ( "getElementsByTagName" in elem ) {
+       // Skip scripts, get other children
+       } else if ( nodeName !== "script" && typeof elem.getElementsByTagName !== "undefined" ) {
                jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked );
        }
 }
index c60c3201db542a06be6023aa489df6a71a08e907..0b1a1e66a2fe3274ddb6911e58e10b73c6c1491a 100644 (file)
@@ -531,7 +531,7 @@ test("append(xml)", function() {
 });
 
 test("appendTo(String|Element|Array&lt;Element&gt;|jQuery)", function() {
-       expect(16);
+       expect(17);
 
        var defaultText = "Try them out:"
        jQuery("<b>buga</b>").appendTo("#first");
@@ -579,7 +579,7 @@ test("appendTo(String|Element|Array&lt;Element&gt;|jQuery)", function() {
        jQuery("#moretests div:last").click();
 
        QUnit.reset();
-       var div = jQuery("<div/>").appendTo("#qunit-fixture, #moretests");
+       div = jQuery("<div/>").appendTo("#qunit-fixture, #moretests");
 
        equals( div.length, 2, "appendTo returns the inserted elements" );
 
@@ -603,6 +603,12 @@ test("appendTo(String|Element|Array&lt;Element&gt;|jQuery)", function() {
        equals( jQuery("#qunit-fixture div").length, num, "Make sure all the removed divs were inserted." );
 
        QUnit.reset();
+
+       stop();
+       jQuery.getScript('data/test.js', function() {
+               jQuery('script[src*="data\\/test\\.js"]').remove();
+               start();
+       });
 });
 
 var testPrepend = function(val) {