Skip to content
Permalink
Browse files
Added a fix for IE returning comment nodes in * queries. I put the lo…
…gic in $.merge() but added a conditional such that the speed hit only effects IE users. (Bug #1155)
  • Loading branch information
jeresig committed Aug 19, 2007
1 parent 735e2e8 commit 24db022
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 3 deletions.
@@ -1725,8 +1725,17 @@ jQuery.extend({
merge: function(first, second) {
// We have to loop this way because IE & Opera overwrite the length
// expando of getElementsByTagName
for ( var i = 0; second[i]; i++ )
first.push(second[i]);

// Also, we need to make sure that the correct elements are being returned
// (IE returns comment nodes in a '*' query)
if ( jQuery.browser.msie ) {
for ( var i = 0; second[i]; i++ )
if ( second[i].nodeType != 8 )
first.push(second[i]);
} else
for ( var i = 0; second[i]; i++ )
first.push(second[i]);

return first;
},

@@ -1,8 +1,13 @@
module("selector");

test("element", function() {
expect(8);
expect(9);
ok( $("*").size() >= 30, "Select all" );
var all = $("*"), good = true;
for ( var i = 0; i < all.length; i++ )
if ( all[i].nodeType == 8 )
good = false;
ok( good, "Select all elements, no comment nodes" );
t( "Element Selector", "p", ["firstp","ap","sndp","en","sap","first"] );
t( "Element Selector", "body", ["body"] );
t( "Element Selector", "html", ["html"] );

0 comments on commit 24db022

Please sign in to comment.