I ended up just removing the indexOf code in favor of using ranges -
seems to work well!

--John



On Tue, Feb 17, 2009 at 2:59 AM, Robert Katić <[email protected]> wrote:
>
> To ensure order and uniqueness with XML and non current documents too,
> we have to ensure that the NodeList "allSort" is the correct one.
> Maybe something like this:
>
> function sortNodes( array ) {
>        if ( array.length === 0 )
>                return;
>
>        if ( allSort && allSort._document !== array[0].ownerDocument ) {
>                var doc = array[0].ownerDocument;
>                allSort = doc.getElementsByTagName("*");
>                allSort._document = doc;
>        }
>
>        hasDuplicate = false;
>        array.sort(sortOrder);
>
>        if ( hasDuplicate ) {
>                var i = array.length;
>                while ( i-- ) {
>                        if ( array[i] === array[i-1] ) {
>                                array.splice(i--, 1);
>                        }
>                }
>        }
> }
>
> You will notice that this sorting function removes duplicates too. The
> reason way I putted all inside, is the possibility to easily expose
> this functionality to the API.
>
> So in function Sizzle (line 115) it can be used like this:
>
> if ( sortOrder && arguments.callee !== arguments.callee.caller ) {
>        sortNodes( results );
> }
>
> Of course, in that case you will add this on line 689:
>
> allSort._document = document;
>
> or simply replace line 688 with:
>
> allSort = true;
>
>
> Or is there something that I haven't catch?
>
>
> On Feb 14, 7:11 pm, John Resig <[email protected]> wrote:
>> > Nice job John, I like your solution very much.
>>
>> Thanks!
>>
>> > But if I am right, the querySelectorAll will always fall with no
>> > standard filters, so we have to ensure order and uniqueness on all
>> > browsers (?).
>>
>> Ah - so you mean the case where someone does: "div:first, p:first"
>>
>> Hmm - good point. I just landed a solution for this that seems to work 
>> well:http://github.com/jeresig/sizzle/commit/c2f4a8a68f59409e86d6b0c01edea...
>>
>> --John
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to