Re: Behavior of matches() and closest() with :scope()

On Tue, Sep 2, 2014 at 9:24 AM, Boris Zbarsky <bzbarsky@mit.edu> wrote:
> On 9/2/14, 12:20 PM, Anne van Kesteren wrote:
>>
>> On Tue, Sep 2, 2014 at 6:11 PM, Tab Atkins Jr. <jackalmage@gmail.com>
>> wrote:
>>>
>>> #1 is what I was intending, but looking at closest() now, I don't see
>>> a restriction to just compound selectors.  If complex selectors are
>>> allowed, then I guess it makes more sense to match matches() and have
>>> :scope refer to the element you're matching against.  It makes it
>>> harder to do some things, but they're probably rare and can be handled
>>> explicitly anyway.
>>
>>
>> Hmm yes, so 2) then? :-)
>
>
> I think I personally would prefer 1); it's not clear to me why complex
> selectors make a difference here.

For the same reason that :scope matches the element in .matches().
Anything you might want to pass to .matches(), you might want to pass
to .closest().

#1 would allow you to write a .closest() selector which, paired with
:has(), can explicitly reference the starting element, but you can
reproduce that if necessary by adding a uniquifier to the starting
element and matching on that.

~TJ

Received on Tuesday, 2 September 2014 16:43:07 UTC