diff --git a/HTMLKit/HTMLNode.h b/HTMLKit/HTMLNode.h
index 1549d30..e5fac40 100644
--- a/HTMLKit/HTMLNode.h
+++ b/HTMLKit/HTMLNode.h
@@ -88,6 +88,8 @@ typedef NS_ENUM(unsigned short, HTMLDocumentPosition)
- (NSUInteger)indexOfChildNode:(HTMLNode *)node;
+- (NSUInteger)childElementsCount;
+
- (HTMLElement *)childElementAtIndex:(NSUInteger)index;
- (NSUInteger)indexOfChildElement:(HTMLElement *)element;
diff --git a/HTMLKit/HTMLNode.m b/HTMLKit/HTMLNode.m
index ebedf36..c630665 100644
--- a/HTMLKit/HTMLNode.m
+++ b/HTMLKit/HTMLNode.m
@@ -159,6 +159,13 @@
return [self.childNodes objectAtIndex:index];
}
+- (NSUInteger)childElementsCount
+{
+ return [self.childNodes indexesOfObjectsPassingTest:^BOOL(HTMLNode * _Nonnull node, NSUInteger idx, BOOL * _Nonnull stop) {
+ return node.nodeType == HTMLNodeElement;
+ }].count;
+}
+
- (NSUInteger)indexOfChildNode:(HTMLNode *)node
{
return [self.childNodes indexOfObject:node];