- From: Simon Sapin <simon.sapin@exyr.org>
- Date: Mon, 06 Jan 2014 19:25:43 +0000
- To: Garrett Smith <dhtmlkitchen@gmail.com>, www-style@w3.org
On 06/01/2014 18:13, Garrett Smith wrote:
> For event bubbling, it is very useful to traverse up the DOM tree to
> find an ancestor. For example:
>
> findAncestorWithClass(el, className, /*opt*/ container);
> findAncestorWithAttribute(el, attName, /*opt*/ value);
> jqueryObj.closest(selectorText, /*opt*/ context)
>
> It would be useful to have an API that traverses up the DOM tree and
> tests each Element against a selector and returns either an Element or
> null.
>
> Proposal:
>
> querySelectorAncestor(startNode, selectorText[, optional Node container);
>
> If container is not specified, container is the root node.
>
> Let currentParent be startNode.parentNode. While currentParent is not
> container, if currentParent matches selectorText, it is returned.
>
I don’t think we need new APIs for this. Using the subject indicator
with the :scope pseudo-class should be enough:
ancestor = scope_element.querySelector('!.some_class :scope');
(By the way, where is :scope being specified nowadays?)
--
Simon Sapin
Received on Monday, 6 January 2014 19:26:13 UTC