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; } }