diff --git a/HTMLKit/HTMLNode.h b/HTMLKit/HTMLNode.h index 9d753a5..6eaa8b3 100644 --- a/HTMLKit/HTMLNode.h +++ b/HTMLKit/HTMLNode.h @@ -84,6 +84,10 @@ typedef NS_ENUM(unsigned short, HTMLDocumentPosition) - (NSUInteger)indexOfChildNode:(HTMLNode *)node; +- (HTMLElement *)childElementAtIndex:(NSUInteger)index; + +- (NSUInteger)indexOfChildElement:(HTMLElement *)element; + - (HTMLNode *)prependNode:(HTMLNode *)node; - (void)prependNodes:(NSArray *)nodes; diff --git a/HTMLKit/HTMLNode.m b/HTMLKit/HTMLNode.m index bcfcfaa..74d3093 100644 --- a/HTMLKit/HTMLNode.m +++ b/HTMLKit/HTMLNode.m @@ -146,6 +146,34 @@ return [self.childNodes indexOfObject:node]; } +- (HTMLElement *)childElementAtIndex:(NSUInteger)index +{ + NSUInteger counter = 0; + for (HTMLNode *node in self.childNodes) { + if (node.nodeType == HTMLNodeElement) { + if (counter == index) { + return node.asElement; + } + counter++; + } + } + return nil; +} + +- (NSUInteger)indexOfChildElement:(HTMLElement *)element +{ + NSUInteger counter = 0; + for (HTMLNode *node in self.childNodes) { + if (node.nodeType == HTMLNodeElement) { + if (node == element) { + return counter; + } + counter++; + } + } + return NSNotFound; +} + - (HTMLNode *)prependNode:(HTMLNode *)node { return [self insertNode:node beforeChildNode:self.firstChild];