Re: QSA, the problem with ":scope", and naming

On 26/10/11 7:51 AM, Tab Atkins Jr. wrote:
> On Tue, Oct 25, 2011 at 1:47 PM, Sean Hogan<shogun70@westnet.com.au>  wrote:
>> I think allowing explicit :scope in findAll() will be perpetually confusing.
>> I can imagine someone looking at old code like:
>>
>>      e.findAll("div.foo span, div.bar :scope span")
>>
>> and asking themselves "what's the rule again? If there's :scope in the
>> selector then there's no :scope implied? Or was that just on each single
>> selector? Or is :scope always implied at the start of the whole selector
>> list and that's why it's explicit in the second part? Dammit, why didn't we
>> just use querySelectorAll() if we wanted explicit :scope?"
> Using :scope explicitly at the beginning of selectors is necessary if
> we want a sane way to have selector lists chain off of the scoping
> element.  I'm okay with the string starting with a combinator when
> it's a single selector like "+ foo", but not when it's a selector list
> like "+ foo, + bar".
>
> ~TJ
>

I didn't follow that. Why does findAll() need to support explicit :scope?

It is simpler if querySelectorAll() supports explicit :scope and 
findAll() doesn't.
Plus it means findAll() matches how js libs currently work.

Sean

Received on Tuesday, 25 October 2011 21:33:49 UTC