@@ -405,7 +405,6 @@ - (void)queryElementAll:(NSString *)virtalElementInfo cssSelector:(NSString *)cs
405
405
[self _queryElement: virtalElementInfo cssSelector: cssSelector callback: callback isAll: YES ];
406
406
}
407
407
408
-
409
408
- (NSString *)_refForVirtalElementInfo : (NSString *)virtalElementInfo
410
409
{
411
410
NSArray *stringArray = [virtalElementInfo componentsSeparatedByString: @" @" ];
@@ -485,13 +484,16 @@ - (void)_matchComponentForCSSSelector:(NSString *)cssSelector component:(WXCompo
485
484
486
485
- (BOOL )_parseCssSelector : (NSString *)cssSelector component : (WXComponent *)component
487
486
{
487
+ if (!cssSelector) {
488
+ return NO ;
489
+ }
488
490
if ([cssSelector hasPrefix: @" [" ]&&[cssSelector hasSuffix: @" ]" ]) {
489
- NSArray *selectorArray = [cssSelector componentsSeparatedByString: @" =" ];
491
+ NSCharacterSet *unwantedChars = [NSCharacterSet characterSetWithCharactersInString: @" \" []" ];
492
+ NSString *requiredString = [[cssSelector componentsSeparatedByCharactersInSet: unwantedChars] componentsJoinedByString: @" " ];
493
+ NSArray *selectorArray = [requiredString componentsSeparatedByString: @" =" ];
490
494
if (selectorArray.count == 2 ) {
491
- NSString *prefixString = selectorArray[0 ];
492
- NSString *suffixString = selectorArray[1 ];
493
- NSString *attribute = [prefixString substringWithRange: NSMakeRange (1 ,prefixString.length-1 )];
494
- NSString *value = [suffixString substringWithRange: NSMakeRange (0 , suffixString.length-1 )];
495
+ NSString *attribute = selectorArray[0 ];
496
+ NSString *value = selectorArray[1 ];
495
497
NSDictionary *componentAttrs = component.attributes ;
496
498
NSString *valueString = [NSString stringWithFormat: @" %@ " ,componentAttrs[attribute]];
497
499
if ([valueString isEqualToString: value]) {
0 commit comments