Add Node methods to handle child elements' indices

This commit is contained in:
iska
2015-11-27 00:46:57 +01:00
parent 7ec90d6470
commit 8cb088367d
2 changed files with 32 additions and 0 deletions
+4
View File
@@ -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;
+28
View File
@@ -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];