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