From b99cb0c9d4dfe243c8e95826e485d9e0d77d0ce3 Mon Sep 17 00:00:00 2001 From: iska Date: Mon, 21 Dec 2015 16:25:26 +0100 Subject: [PATCH] Change ":has" selector's behaviour to include all descendants instead of direct child elements. --- HTMLKit/CSSPseudoFunctionSelector.m | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/HTMLKit/CSSPseudoFunctionSelector.m b/HTMLKit/CSSPseudoFunctionSelector.m index 0e0fc14..f4bbbe0 100644 --- a/HTMLKit/CSSPseudoFunctionSelector.m +++ b/HTMLKit/CSSPseudoFunctionSelector.m @@ -73,8 +73,9 @@ - (BOOL)acceptElement:(HTMLElement *)element { - for (HTMLNode *child in element.childNodes) { - if (child.nodeType == HTMLNodeElement && [self.selector acceptElement:child.asElement]) { + HTMLNodeIterator *iterator = [element nodeIteratorWithShowOptions:HTMLNodeFilterShowAll filter:nil]; + for (HTMLNode *descendant in iterator) { + if (descendant.nodeType == HTMLNodeElement && [self.selector acceptElement:descendant.asElement]) { return YES; } }