diff --git a/HTMLKit/HTMLNode.h b/HTMLKit/HTMLNode.h
index 6eaa8b3..1549d30 100644
--- a/HTMLKit/HTMLNode.h
+++ b/HTMLKit/HTMLNode.h
@@ -62,6 +62,10 @@ typedef NS_ENUM(unsigned short, HTMLDocumentPosition)
@property (nonatomic, strong, readonly) HTMLNode *nextSibling;
+@property (nonatomic, strong, readonly) HTMLElement *previousSiblingElement;
+
+@property (nonatomic, strong, readonly) HTMLElement *nextSiblingElement;
+
@property (nonatomic, copy) NSString *textContent;
@property (nonatomic, strong, readonly) NSString *outerHTML;
diff --git a/HTMLKit/HTMLNode.m b/HTMLKit/HTMLNode.m
index 74d3093..ebedf36 100644
--- a/HTMLKit/HTMLNode.m
+++ b/HTMLKit/HTMLNode.m
@@ -99,6 +99,24 @@
return [_parentNode childNodeAtIndex:index + 1];
}
+- (HTMLElement *)previousSiblingElement
+{
+ HTMLNode *node = self.previousSibling;
+ while (node && node.nodeType != HTMLNodeElement) {
+ node = node.previousSibling;
+ }
+ return node.asElement;
+}
+
+- (HTMLElement *)nextSiblingElement
+{
+ HTMLNode *node = self.previousSibling;
+ while (node && node.nodeType != HTMLNodeElement) {
+ node = node.nextSibling;
+ }
+ return node.asElement;
+}
+
- (NSString *)textContent
{
return nil;