[jQuery] Fix for broken nextUntil

[jQuery] Fix for broken nextUntil


Hi everyone!
I wanted to use nextUntil, but noticed that it was broken in jQuery
1.3.2 (I know that the "plugin" isn't official yet and that is wanted
in the core - looking at the roadmap).
Well, this line wasn't working:
// If we find a match then we need to stop
if ( jQuery.filter( expr, [i] ).r.length ) break;
I'm curious, what was the r-property doing there before? :)
Well, I created a small patch, that also gives the oppurtunity to also
include the last selector
default is as usual:
$("h3").nextUntil();
=> [ div, p, p, h3, div, p ]
$("h3").nextUntil("h3");
=> [ div, p, p ]
But if a last value true is given, it also includes that that last
selector:
$("h3").nextUntil("h3", true);
=> [ div, p, p, h3 ]
Hope that someone can make use of this.
All credit goes to John Resig for his excellent work with jQuery (
jQuery.fn.nextUntil = function(expr, include) {
var match = [];
    include = include ? true : false
    // We need to figure out which elements to push onto the array
    this.each(function(){
        // Traverse through the sibling nodes
        for( var i = this.nextSibling; i; i = i.nextSibling ) {
            // Make sure that we're only dealing with elements
            if ( i.nodeType != 1 ) continue;
            // Add it on to the stack if include is set
            if ( include ) {
                match.push( i );
            }
            // If we find a match then we need to stop
            if ( jQuery.filter( expr, [i] ).length ) break;
            // Add it on to the stack if include is not set
            if (! include ) {
                match.push( i );
            }
        }
    });
return this.pushStack( match, arguments );
}
Best regards
Johan Borestad