X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;ds=sidebyside;f=0.6.x%2Fjs%2F02_dom%2F08_XNodeSelector.js;h=793e166cc5cbf84bfeba8822ca8604c54c12e0b6;hb=3256f11c856314a1425b8459b9d000a88caf8258;hp=2a746ff6c657e6a7b1d8289bf448ac70a8f107ae;hpb=dd02887497fa95f13d112b7fc2e5e7aefd0ffb08;p=pettanr%2FclientJs.git diff --git a/0.6.x/js/02_dom/08_XNodeSelector.js b/0.6.x/js/02_dom/08_XNodeSelector.js index 2a746ff..793e166 100644 --- a/0.6.x/js/02_dom/08_XNodeSelector.js +++ b/0.6.x/js/02_dom/08_XNodeSelector.js @@ -184,16 +184,22 @@ function X_Node_Selector__parse( query, last ){ break; default : }; + + if( phase === 0xf ) return i; + //alert( chr + ' ' + phase + ' ' + selector + ' ' + name + ' ' + name1st ) if( phase === 0xe ){ if( selector === 4 ){// :not if( name === 'not' ){ - if( not ) return i; // error - not = true; - selector = 0; - phase = 0x0; - name = null; - continue; + if( not ){ + return i; // error + } else { + not = true; + selector = 0; + phase = 0x0; + name = null; + }; + //continue; } else if( name === 'lang' || name === 'contains' ){ result = [ not ? 0 : combinator, selector, name, value ]; @@ -203,16 +209,16 @@ function X_Node_Selector__parse( query, last ){ result = [ not ? 0 : combinator, selector, name, a, b ]; break; }; + } else { + result = + combinator === 5 ? + 5 : + selector === 5 ? + [ not ? 0 : combinator, selector, key, operator, value ] : + [ not ? 0 : combinator, selector, name.split( '\\' ).join( '' ) ]; + break; }; - result = - combinator === 5 ? - 5 : - selector === 5 ? - [ not ? 0 : combinator, selector, key, operator, value ] : - [ not ? 0 : combinator, selector, name.split( '\\' ).join( '' ) ]; - break; - } else - if( phase === 0xf ) return i; + }; escape = chr === '\\' && !escape; };