@@ -261,23 +261,32 @@ var Expr = Sizzle.selectors = {
261
261
} ,
262
262
relative : {
263
263
"+" : function ( checkSet , part , isXML ) {
264
- var isPartStr = typeof part === "string" ,
264
+ var isPartStr = typeof part === "string" ,
265
265
isTag = isPartStr && ! / \W / . test ( part ) ,
266
266
isPartStrNotTag = isPartStr && ! isTag ;
267
- if ( isTag && ! isXML ) part = part . toUpperCase ( ) ;
267
+
268
+ if ( isTag && ! isXML ) {
269
+ part = part . toUpperCase ( ) ;
270
+ }
271
+
268
272
for ( var i = 0 , l = checkSet . length , elem ; i < l ; i ++ ) {
269
- if ( elem = checkSet [ i ] ) {
270
- while ( ( elem = elem . previousSibling ) && elem . nodeType !== 1 ) { } ;
273
+ if ( ( elem = checkSet [ i ] ) ) {
274
+ while ( ( elem = elem . previousSibling ) && elem . nodeType !== 1 ) { }
275
+
271
276
checkSet [ i ] = isPartStrNotTag || elem && elem . nodeName === part ?
272
- elem : elem === part ;
277
+ elem || false :
278
+ elem === part ;
273
279
}
274
280
}
275
- if ( isPartStrNotTag ) {
281
+
282
+ if ( isPartStrNotTag ) {
276
283
Sizzle . filter ( part , checkSet , true ) ;
277
284
}
278
285
} ,
279
286
">" : function ( checkSet , part , isXML ) {
280
- if ( typeof part === "string" && ! / \W / . test ( part ) ) {
287
+ var isPartStr = typeof part === "string" ;
288
+
289
+ if ( isPartStr && ! / \W / . test ( part ) ) {
281
290
part = isXML ? part : part . toUpperCase ( ) ;
282
291
283
292
for ( var i = 0 , l = checkSet . length ; i < l ; i ++ ) {
@@ -291,13 +300,13 @@ var Expr = Sizzle.selectors = {
291
300
for ( var i = 0 , l = checkSet . length ; i < l ; i ++ ) {
292
301
var elem = checkSet [ i ] ;
293
302
if ( elem ) {
294
- checkSet [ i ] = typeof part === "string" ?
303
+ checkSet [ i ] = isPartStr ?
295
304
elem . parentNode :
296
305
elem . parentNode === part ;
297
306
}
298
307
}
299
308
300
- if ( typeof part === "string" ) {
309
+ if ( isPartStr ) {
301
310
Sizzle . filter ( part , checkSet , true ) ;
302
311
}
303
312
}
0 commit comments