OSDN Git Service

fix XNode.text & X.Audio.Sprite & parse json of X.Net.XHR.
[pettanr/clientJs.git] / 0.6.x / js / 02_dom / 08_XNodeSelector.js
index cbe5621..793e166 100644 (file)
@@ -56,7 +56,10 @@ var
        // TODO { a : 1, A : 2, _ : 3,,, }\r
        X_Node_Selector__ALPHABET  = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-0123456789\\',\r
        X_Node_Selector__NUMBER    = '+-0123456789';\r
-                       \r
+\r
+// XMLWrapper のために今だけ外部に公開\r
+X_NodeSelector_parse = X_Node_Selector__parse;\r
+               \r
 /*\r
  * セレクタ文字列の解析、但し一挙に行わず、ひと塊づつ\r
  * 結合子 + 単体セレクタ( タグ,*,#,.,[],: )\r
@@ -181,16 +184,22 @@ function X_Node_Selector__parse( query, last ){
                                break;\r
                        default :\r
                };\r
+               \r
+               if( phase === 0xf ) return i;\r
+               \r
                //alert( chr + ' ' + phase + ' ' + selector + ' ' + name + ' ' + name1st )\r
                if( phase === 0xe ){\r
                        if( selector === 4 ){// :not\r
                                if( name === 'not' ){\r
-                                       if( not ) return i; // error\r
-                                       not      = true;\r
-                                       selector = 0;\r
-                                       phase    = 0x0;\r
-                                       name     = null;\r
-                                       continue;\r
+                                       if( not ){\r
+                                               return i; // error\r
+                                       } else {\r
+                                               not      = true;\r
+                                               selector = 0;\r
+                                               phase    = 0x0;\r
+                                               name     = null;                                        \r
+                                       };\r
+                                       //continue;\r
                                } else\r
                                if( name === 'lang' || name === 'contains' ){\r
                                        result = [ not ? 0 : combinator, selector, name, value ];\r
@@ -200,16 +209,16 @@ function X_Node_Selector__parse( query, last ){
                                        result = [ not ? 0 : combinator, selector, name, a, b ];\r
                                        break;  \r
                                };\r
+                       } else {\r
+                               result =\r
+                                       combinator === 5 ?\r
+                                               5 :\r
+                                       selector === 5 ?\r
+                                               [ not ? 0 : combinator, selector, key, operator, value ] :\r
+                                               [ not ? 0 : combinator, selector, name.split( '\\' ).join( '' ) ];\r
+                               break;                          \r
                        };\r
-                       result =\r
-                               combinator === 5 ?\r
-                                       5 :\r
-                               selector === 5 ?\r
-                                       [ not ? 0 : combinator, selector, key, operator, value ] :\r
-                                       [ not ? 0 : combinator, selector, name.split( '\\' ).join( '' ) ];\r
-                       break;\r
-               } else\r
-               if( phase === 0xf ) return i;\r
+               };\r
 \r
                escape = chr === '\\' && !escape;\r
        };\r
@@ -219,7 +228,7 @@ function X_Node_Selector__parse( query, last ){
 };\r
 \r
        // セレクター\r
-       X.Doc.find = X._shortcut = Node.prototype.find = X_NodeList.prototype.find = function( queryString ){\r
+       X.Doc.find = X_shortcutFunction = Node.prototype.find = X_NodeList.prototype.find = function ( queryString ){\r
                var HTML      = X_Node_html,\r
                        scope     = this.constructor === X_NodeList && this.length ? this : [ this.constructor === Node ? this : X_Node_body ],\r
                        parents   = scope, // 探索元の親要素 XNodeList の場合あり\r
@@ -440,7 +449,7 @@ function X_Node_Selector__parse( query, last ){
                                                // 諦めて、funcAttrを呼ぶ\r
                                                // flag_call  = ($.browser.safari && key === 'selected');\r
                                                // getAttributeを使わない\r
-                                               useName = X.UA.IE && key !== 'href' && key !== 'src';\r
+                                               useName = X_UA.IE && key !== 'href' && key !== 'src';\r
                                                toLower = !!val && !isXML && noLower.indexOf( key ) === -1; //!noLower.test(key);\r
                                                if( toLower ) val = val.toLowerCase();\r
                                                if( op === 3 ) val = _ + val + _;\r