diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index 84205253..98cbf372 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -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; }, diff --git a/src/selector/selectorTest.js b/src/selector/selectorTest.js index ac07bf32..7644fbea 100644 --- a/src/selector/selectorTest.js +++ b/src/selector/selectorTest.js @@ -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"] );