Do not call getElements on a script tag. Avoids unnecessary execution. Fixes #10176.

This commit is contained in:
timmywil 2011-10-12 00:06:30 -04:00
parent 92b06d302c
commit 3ad0ba62f0
2 changed files with 14 additions and 6 deletions

View File

@ -530,10 +530,10 @@ jQuery.each({
}); });
function getAll( elem ) { function getAll( elem ) {
if ( "getElementsByTagName" in elem ) { if ( typeof elem.getElementsByTagName !== "undefined" ) {
return elem.getElementsByTagName( "*" ); return elem.getElementsByTagName( "*" );
} else if ( "querySelectorAll" in elem ) { } else if ( typeof elem.querySelectorAll !== "undefined" ) {
return elem.querySelectorAll( "*" ); return elem.querySelectorAll( "*" );
} else { } else {
@ -549,9 +549,11 @@ function fixDefaultChecked( elem ) {
} }
// Finds all inputs and passes them to fixDefaultChecked // Finds all inputs and passes them to fixDefaultChecked
function findInputs( elem ) { function findInputs( elem ) {
if ( jQuery.nodeName( elem, "input" ) ) { var nodeName = (elem.nodeName || "").toLowerCase();
if ( nodeName === "input" ) {
fixDefaultChecked( elem ); 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 ); jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked );
} }
} }

View File

@ -531,7 +531,7 @@ test("append(xml)", function() {
}); });
test("appendTo(String|Element|Array<Element>|jQuery)", function() { test("appendTo(String|Element|Array<Element>|jQuery)", function() {
expect(16); expect(17);
var defaultText = "Try them out:" var defaultText = "Try them out:"
jQuery("<b>buga</b>").appendTo("#first"); 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(); jQuery("#moretests div:last").click();
QUnit.reset(); 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" ); 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." ); equals( jQuery("#qunit-fixture div").length, num, "Make sure all the removed divs were inserted." );
QUnit.reset(); QUnit.reset();
stop();
jQuery.getScript('data/test.js', function() {
jQuery('script[src*="data\\/test\\.js"]').remove();
start();
});
}); });
var testPrepend = function(val) { var testPrepend = function(val) {