Add HTML Element class-list property

This commit is contained in:
iska
2015-11-30 20:22:35 +01:00
parent d924063b02
commit 8893f28e4d
3 changed files with 29 additions and 5 deletions
+5 -2
View File
@@ -9,6 +9,7 @@
#import <Foundation/Foundation.h>
#import "HTMLNamespaces.h"
#import "HTMLNode.h"
#import "HTMLDOMTokenList.h"
NS_ASSUME_NONNULL_BEGIN
@@ -18,12 +19,14 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, copy, readonly) NSString *tagName;
@property (nonatomic, strong) NSMutableDictionary *attributes;
@property (nonatomic, copy) NSString *elementId;
@property (nonatomic, copy) NSString *className;
@property (nonatomic, strong, readonly) HTMLDOMTokenList *classList;
@property (nonatomic, strong) NSMutableDictionary *attributes;
- (instancetype)initWithTagName:(NSString *)tagName;
- (instancetype)initWithTagName:(NSString *)tagName attributes:(NSDictionary *)attributes;
- (instancetype)initWithTagName:(NSString *)tagName namespace:(HTMLNamespace)htmlNamespace attributes:(NSDictionary *)attributes;
+20 -3
View File
@@ -10,7 +10,7 @@
#import "HTMLParser.h"
#import "HTMLDocument.h"
#import "HTMLText.h"
#import "HTMLDOMTokenList.h"
#import "HTMLOrderedDictionary.h"
#import "NSString+HTMLKit.h"
@@ -53,18 +53,35 @@
return self;
}
#pragma mark - Attributes
#pragma mark - Special Attributes
- (NSString *)elementId
{
return _attributes[@"id"] ?: @"";
}
- (void)setElementId:(NSString *)elementId
{
_attributes[@"id"] = elementId;
}
- (NSString *)className
{
return _attributes[@"class"];
return _attributes[@"class"] ?: @"";
}
- (void)setClassName:(NSString *)className
{
_attributes[@"class"] = className;
}
- (HTMLDOMTokenList *)classList
{
return [[HTMLDOMTokenList alloc] initWithElement:self attribute:@"class" value:self.className];
}
#pragma mark - Attributes
- (BOOL)hasAttribute:(NSString *)name
{
return _attributes[name] != nil;