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