W3C home > Mailing lists > Public > www-style@w3.org > September 2014

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

From: Tab Atkins Jr. <jackalmage@gmail.com>
Date: Tue, 2 Sep 2014 09:42:20 -0700
Message-ID: <CAAWBYDDd-iGPtFYroU=X1+6r_ZTj4r_e-XSDoULWbsJ-t8Ce_Q@mail.gmail.com>
To: Boris Zbarsky <bzbarsky@mit.edu>
Cc: Anne van Kesteren <annevk@annevk.nl>, "www-style@w3.org" <www-style@w3.org>, "www-dom@w3.org" <www-dom@w3.org>, David Håsäther <hasather@gmail.com>
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:06 UTC

This archive was generated by hypermail 2.4.0 : Friday, 25 March 2022 10:08:46 UTC