On Mon, May 30, 2011 at 12:45 AM, Nathan Sweet <[email protected]> wrote: > Okay I found some interesting failures. If you want to have a look see again > (http://nathansweet.me/queryselectorall-rundown). The general sibling > selector, ie tilde, ie "~", fails to return. The matches selector fails on
I can hardly believe qSA is failing generic sibling selectors, better check your assertions in that test. -- Diego > the first call for me, I'm going to try some others. This is the last you'll > hear from me for a while on the subject until I have a whole test suite > going and I'm sure my selectors are failing for the right reasons. > > On Sun, May 29, 2011 at 10:33 AM, Diego Perini <[email protected]> > wrote: >> >> On Sun, May 29, 2011 at 4:29 PM, Nathan Sweet <[email protected]> >> wrote: >> >>>The only selector string failing in your tests is the ".1st-p" which >> >>>correctly fails since the class name does not correspond to a valid >> >>>identifier. >> > Fixed. Thanks for the heads up. >> > TOALL: >> > Doesn't anybody know of any interesting failures with qSA? I'm not >> > saying it >> > to be smug, I can't find any. I'm sure that it fails on some pseudos. >> >> >> Nathan, >> I am sure I don't cover everything in my feature testing but the block >> of code handling that in NWMatcher could be a start, it is commented >> and includes external links to related readings: >> >> https://github.com/dperini/nwmatcher/blob/master/src/nwmatcher.js#L328 >> >> that block is specific for bugs related to the "querySelectorAll" >> method. You should probably expect the same bugs be present in the >> "querySelector" method. >> >> One very annoying bug is in the Webkit/Chrome implementation of the >> "matchesSelector" method (WebkitMatchesSelector), the problem seems to >> be that first call return correct results while second and further >> calls will return incorrect results. This bug happens with indexed >> structural pseudo-classes like ":nth-child()", see this bug for more >> informations and a small test: >> >> http://code.google.com/p/chromium/issues/detail?id=78266 >> >> Hope this gives you enough material to start with ;-) >> >> >> -- >> Diego >> >> >> > On Sun, May 29, 2011 at 1:42 AM, Diego Perini <[email protected]> >> > wrote: >> >> >> >> Nathan, >> >> the "querySelectorAll" method exists also on IE 8 in Standard Mode. >> >> >> >> In all IE versions < 9 there are problem with the "Universal selector" >> >> since their API methods returns text nodes included in the result set. >> >> This is not only a problem with "querySelectorAll", in fact on IE < 9 >> >> also "getElementsByTagName" has the same problems with text nodes. >> >> >> >> There are several other bugs in IE < 9 related to elements selection >> >> API. The baseline for IE is that after retrieving the NodeList one >> >> need to go through it members discarding text nodes, comments and >> >> invalid elements. >> >> >> >> The conditional I prefer to use to filter appropriate nodes from the >> >> list >> >> is: >> >> >> >> if (element.nodeName > '@') { >> >> .... // it is an Element node >> >> } >> >> >> >> also the standard one is: >> >> >> >> if (element.nodeType == 1) { >> >> .... // it is an Element node >> >> } >> >> >> >> I prefer the first since it also helps discard fake "closed tags" >> >> elements for non recognized HTML5 elements, for example: >> >> >> >> <abbr>NYC</abbr> >> >> >> >> could be recognized as two elements in some IE version <= 8, the first >> >> is the open tag "abbr", the second is the close tag "/abbr" which >> >> tagName/nodeName starts with a slash. >> >> >> >> The only selector string failing in your tests is the ".1st-p" which >> >> correctly fails since the class name does not correspond to a valid >> >> identifier. >> >> >> >> >> >> -- >> >> Diego >> >> >> >> >> >> >> >> On Sun, May 29, 2011 at 7:34 AM, Nathan Sweet <[email protected]> >> >> wrote: >> >> >>>Whats the difference in Chrome, FF? nodelist is non-live in all of >> >> >>> them. >> >> > When I said unlike the others I meant the other IE versions, not the >> >> > other >> >> > browsers, my bad : >> >> > It's kind of a moot point anyways, if it was implemented in <IE9 then >> >> > it >> >> > might have been implemented correctly. What I was referring to is >> >> > that >> >> > in >> >> > <IE9 a lot of the selectors return nodelists that >> >> > include intermittent >> >> > text >> >> > nodes for the empty spaces, whereas other browsers don't do that. I >> >> > was >> >> > referring to this particular quirk in <IE9, which prevents >> >> > Array.prototype.slice.call from being cross-browser friendly for node >> >> > lists >> >> > for certain selector methods. Someone once told me that some >> >> > libraries >> >> > remove all the white space between elements, but I don't actually see >> >> > how >> >> > that could help as a spaced out innerHTML assignment could easily >> >> > foul >> >> > it >> >> > up. >> >> > >> >> > On Sat, May 28, 2011 at 10:14 PM, Andrew Dodson >> >> > <[email protected]> >> >> > wrote: >> >> >> >> >> >> Isn't that what its supposed >> >> >> to http://www.w3.org/TR/selectors-api/#nodeselector >> >> >> Whats the difference in Chrome, FF? nodelist is non-live in all of >> >> >> them. >> >> >> >> >> >> >> >> >> >> >> >> On Sat, May 28, 2011 at 7:58 PM, Nathan Sweet >> >> >> <[email protected]> >> >> >> wrote: >> >> >>> >> >> >>> I meant <IE9, IE9 also only returns elements in its nodelists, >> >> >>> unlike >> >> >>> the >> >> >>> others. >> >> >>> >> >> >>> On Sat, May 28, 2011 at 7:54 PM, Andrew Dodson >> >> >>> <[email protected]> wrote: >> >> >>>> >> >> >>>> querySelectorAll is enabled in IE9, checkout "ie9 testdrive". >> >> >>>> >> >> >>>> On 28 May 2011 19:50, "nathanJsweet" <[email protected]> >> >> >>>> wrote: >> >> >>>> >> >> >>>> So I've been messing around with querySelectorAll. I've published >> >> >>>> a blog post about it which can be found at "nathansweet.me/ >> >> >>>> queryselectorall", >> >> >>>> though I'm not really plugging the post, which actually doesn't >> >> >>>> have >> >> >>>> so >> >> >>>> much information concerning the method as it does a link to a page >> >> >>>> I've created that tests the method. >> >> >>>> >> >> >>>> I'm asking anybody in this group who is interested take a look >> >> >>>> at this page (it can be found at "nathansweet.me/queryselectorall- >> >> >>>> rundown") >> >> >>>> and email me, respond to this post, or comment on the blog post >> >> >>>> any >> >> >>>> other selector ideas they can come up with. My goal would be to >> >> >>>> come >> >> >>>> up with an exhaustive list of selectors that I could then run >> >> >>>> through >> >> >>>> a multitude of browsers (I would, of course, share the results). >> >> >>>> I've >> >> >>>> already come up with some interesting failures that shouldn't be >> >> >>>> occurring, >> >> >>>> and I'm also interested to hear from people who've worked with the >> >> >>>> method extensively. >> >> >>>> >> >> >>>> Also am I wrong in thinking that since querySelectorAll isn't >> >> >>>> implemented in IE >> >> >>>> that it will always return only elements? Thus, is it safe to do >> >> >>>> Array.prototype.slice.call >> >> >>>> on any nodelist returned by querySelectorAll? I haven't thought of >> >> >>>> a >> >> >>>> case yet where >> >> >>>> this wouldn't be a bad idea, let me know. >> >> >>>> >> >> >>>> Also, if nobody helps it's no big deal, as I will be adding >> >> >>>> selectors >> >> >>>> to it over the coming weeks, >> >> >>>> so if you're into bookmarking it might be worth coming back for a >> >> >>>> second or third look. >> >> >>>> >> >> >>>> -- >> >> >>>> To view archived discussions from the original JSMentors Mailman >> >> >>>> list: >> >> >>>> http://www.mail-archive.com/[email protected]/ >> >> >>>> >> >> >>>> To search via a non-Google archive, visit here: >> >> >>>> http://www.mail-archive.com/[email protected]/ >> >> >>>> >> >> >>>> To unsubscribe from this group, send email to >> >> >>>> [email protected] >> >> >>>> >> >> >>>> -- >> >> >>>> To view archived discussions from the original JSMentors Mailman >> >> >>>> list: >> >> >>>> http://www.mail-archive.com/[email protected]/ >> >> >>>> >> >> >>>> To search via a non-Google archive, visit here: >> >> >>>> http://www.mail-archive.com/[email protected]/ >> >> >>>> >> >> >>>> To unsubscribe from this group, send email to >> >> >>>> [email protected] >> >> >>> >> >> >>> -- >> >> >>> To view archived discussions from the original JSMentors Mailman >> >> >>> list: >> >> >>> http://www.mail-archive.com/[email protected]/ >> >> >>> >> >> >>> To search via a non-Google archive, visit here: >> >> >>> http://www.mail-archive.com/[email protected]/ >> >> >>> >> >> >>> To unsubscribe from this group, send email to >> >> >>> [email protected] >> >> >> >> >> >> -- >> >> >> To view archived discussions from the original JSMentors Mailman >> >> >> list: >> >> >> http://www.mail-archive.com/[email protected]/ >> >> >> >> >> >> To search via a non-Google archive, visit here: >> >> >> http://www.mail-archive.com/[email protected]/ >> >> >> >> >> >> To unsubscribe from this group, send email to >> >> >> [email protected] >> >> > >> >> > -- >> >> > To view archived discussions from the original JSMentors Mailman >> >> > list: >> >> > http://www.mail-archive.com/[email protected]/ >> >> > >> >> > To search via a non-Google archive, visit here: >> >> > http://www.mail-archive.com/[email protected]/ >> >> > >> >> > To unsubscribe from this group, send email to >> >> > [email protected] >> >> > >> >> >> >> -- >> >> To view archived discussions from the original JSMentors Mailman list: >> >> http://www.mail-archive.com/[email protected]/ >> >> >> >> To search via a non-Google archive, visit here: >> >> http://www.mail-archive.com/[email protected]/ >> >> >> >> To unsubscribe from this group, send email to >> >> [email protected] >> > >> > -- >> > To view archived discussions from the original JSMentors Mailman list: >> > http://www.mail-archive.com/[email protected]/ >> > >> > To search via a non-Google archive, visit here: >> > http://www.mail-archive.com/[email protected]/ >> > >> > To unsubscribe from this group, send email to >> > [email protected] >> > >> >> -- >> To view archived discussions from the original JSMentors Mailman list: >> http://www.mail-archive.com/[email protected]/ >> >> To search via a non-Google archive, visit here: >> http://www.mail-archive.com/[email protected]/ >> >> To unsubscribe from this group, send email to >> [email protected] > > -- > To view archived discussions from the original JSMentors Mailman list: > http://www.mail-archive.com/[email protected]/ > > To search via a non-Google archive, visit here: > http://www.mail-archive.com/[email protected]/ > > To unsubscribe from this group, send email to > [email protected] > -- To view archived discussions from the original JSMentors Mailman list: http://www.mail-archive.com/[email protected]/ To search via a non-Google archive, visit here: http://www.mail-archive.com/[email protected]/ To unsubscribe from this group, send email to [email protected]
