fixed jQuery.dir regression introduced with 1.4 *untils patch that errored when trave...
authorBen Alman <cowboy@rj3.net>
Thu, 21 Jan 2010 01:10:34 +0000 (09:10 +0800)
committerJohn Resig <jeresig@gmail.com>
Sat, 23 Jan 2010 17:20:53 +0000 (01:20 +0800)
src/traversing.js
test/unit/traversing.js

index d0dd52d..bf17b8a 100644 (file)
@@ -235,7 +235,7 @@ jQuery.extend({
        
        dir: function( elem, dir, until ) {
                var matched = [], cur = elem[dir];
-               while ( cur && cur.nodeType !== 9 && (until === undefined || !jQuery( cur ).is( until )) ) {
+               while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
                        if ( cur.nodeType === 1 ) {
                                matched.push( cur );
                        }
index f406ac7..d297ce3 100644 (file)
@@ -317,7 +317,7 @@ test("prevAll([String])", function() {
 });
 
 test("nextUntil([String])", function() {
-       expect(10);
+       expect(11);
        
        var elems = jQuery('#form').children().slice( 2, 12 );
        
@@ -331,6 +331,8 @@ test("nextUntil([String])", function() {
        same( jQuery("#text1").nextUntil("#area1", "button,input").get(), elems.get(), "Multiple-filtered nextUntil check" );
        equals( jQuery("#text1").nextUntil("#area1", "div").length, 0, "Filtered nextUntil check, no match" );
        same( jQuery("#text1, #hidden1").nextUntil("#area1", "button,input").get(), elems.get(), "Multi-source, multiple-filtered nextUntil check" );
+       
+       same( jQuery("#text1").nextUntil("[class=foo]").get(), jQuery("#text1").nextAll().get(), "Non-element nodes must be skipped, since they have no attributes" );
 });
 
 test("prevUntil([String])", function() {