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 -~----------~----~----~----~------~----~------~--~---
