OSDN Git Service

Version 0.6.179, fix X.Audio & X.AudioSprite.
[pettanr/clientJs.git] / 0.6.x / js / 05_util / 04_XXML.js
index 34f50a4..44a020d 100644 (file)
@@ -1,7 +1,7 @@
 /*\r
  * XMLWrapper_find 周りの オリジナルコードに関する情報\r
  *  Original code by pettanR team\r
- *  - http://sourceforge.jp/projects/pettanr/scm/git/clientJs/blobs/master/0.6.x/js/01_dom/18_XDomQuery.js\r
+ *  - https://osdn.jp/projects/pettanr/scm/git/clientJs/blobs/master/0.6.x/js/02_dom/08_XNodeSelector.js\r
  *  and\r
  *  Original code by ofk ( kQuery, ksk )\r
  *  - http://d.hatena.ne.jp/ofk/comment/20090106/1231258010\r
@@ -23,11 +23,19 @@ function XMLWrapper( xml ){
        this._rawXML = xml;\r
 };\r
 \r
-XMLWrapper.prototype.length    = 1;\r
-XMLWrapper.prototype[ 'has' ]  = XMLWrapper_has;\r
-XMLWrapper.prototype[ 'get' ]  = XMLWrapper_get;\r
-XMLWrapper.prototype[ 'val' ]  = XMLWrapper_val;\r
-XMLWrapper.prototype[ 'find' ] = XMLWrapper_find;\r
+XMLWrapper.prototype.length      = 1;\r
+XMLWrapper.prototype[ 'parent' ] = XMLWrapper_parent;\r
+XMLWrapper.prototype[ 'has' ]    = XMLWrapper_has;\r
+XMLWrapper.prototype[ 'get' ]    = XMLWrapper_get;\r
+XMLWrapper.prototype[ 'val' ]    = XMLWrapper_val;\r
+XMLWrapper.prototype[ 'find' ]   = XMLWrapper_find;\r
+\r
+function XMLWrapper_parent(){\r
+       if( this.length === 1 ) return this._rawXML && this._rawXML.parentNode ? new XMLWrapper( this._rawXML.parentNode ) : null;\r
+       if( this.length === 0 ) return null;\r
+       \r
+       return this[ 0 ].parentNode ? ( new XMLWrapper( this[ 0 ].parentNode ) ) : null;\r
+};\r
 \r
 function XMLWrapper_has( queryString ){\r
        return !!this.find( queryString ).length;\r
@@ -45,7 +53,7 @@ function XMLWrapper_get( index ){
 };\r
 \r
 function XMLWrapper_val( queryString, type ){\r
-       var attr_textContent = X_UA[ 'IE' ] < 9 || X_UA[ 'Opera' ] ? 'innerText' : X_UA[ 'IE9' ] ? 'text' : 'textContent',\r
+       var //attr_textContent = X_UA[ 'IE' ] < 9 || X_UA[ 'Opera' ] ? 'innerText' : X_UA[ 'IE9' ] ? 'text' : 'textContent',\r
                wrapper, xml, v;\r
        \r
        switch( queryString ){\r
@@ -55,7 +63,7 @@ function XMLWrapper_val( queryString, type ){
                case 'string' :\r
                case undefined :\r
                        type = queryString;\r
-                       queryString = undefined;\r
+                       queryString = 0;\r
        };\r
                \r
        wrapper = queryString ? this.find( queryString ) : this;\r
@@ -83,7 +91,7 @@ function XMLWrapper_val( queryString, type ){
                case 'int' :\r
                        return parseFloat( v ) | 0;\r
                case 'boolean' :\r
-                       return v && v !== '0' && v !== 'false' && v !== 'null' && v !== 'undefined' && v !== 'NaN';\r
+                       return !!X_String_parse( v );\r
                //case 'string' :\r
                //default :     \r
        };\r
@@ -469,7 +477,7 @@ function XMLWrapper_val( queryString, type ){
                for( ; xnode = xmlList[ i ]; ++i ){\r
                        uid = xnode._uid;\r
                        tmp = checked[ uid ];\r
-                       if( tmp === void 0 ){\r
+                       if( tmp === undefined ){\r
                                for( c = 0, node = xnode.parentNode[ pointer ], tagName = flag_all || xnode.tagName; node; node = node[ sibling ] ){\r
                                        if( node.nodeType === 1 && ( flag_all || tagName === node.tagName ) ){\r
                                                ++c;\r
@@ -576,9 +584,10 @@ function XMLListWrapper( xmlList ){
 \r
 var XMLListWrapper_0 = new XMLListWrapper();\r
 \r
-XMLListWrapper.prototype.length    = 0;\r
-XMLListWrapper.prototype._wraps    = null;\r
-XMLListWrapper.prototype[ 'has' ]  = XMLWrapper_has;\r
-XMLListWrapper.prototype[ 'get' ]  = XMLWrapper_get;\r
-XMLListWrapper.prototype[ 'val' ]  = XMLWrapper_val;\r
-XMLListWrapper.prototype[ 'find' ] = XMLWrapper_find;\r
+XMLListWrapper.prototype.length      = 0;\r
+XMLListWrapper.prototype._wraps      = null;\r
+XMLListWrapper.prototype[ 'parent' ] = XMLWrapper_parent;\r
+XMLListWrapper.prototype[ 'has' ]    = XMLWrapper_has;\r
+XMLListWrapper.prototype[ 'get' ]    = XMLWrapper_get;\r
+XMLListWrapper.prototype[ 'val' ]    = XMLWrapper_val;\r
+XMLListWrapper.prototype[ 'find' ]   = XMLWrapper_find;\r