jQueryã«query parserã追å ããæ¡å¼µ
query_string(location.search)ããã¼ã¹ãã¦ãªãã¸ã§ã¯ããè¿ãæ¡å¼µ
ä½ãæ¹
jquery.parse.jsã¨ãé©å½ã«ååãä»ãã¦ä¿åãã¾ãã
jquery pluginã¯jQuery.fn.extend(object)ãå©ç¨ããã®ãä½æ³ã§ããjQuery.parse()ã¿ãããªå¼ã³åºãåºæ¥ãªããªãã®ã§å¼·å¼ã«æ¡å¼µãã¦ãã¾ãã
â»jquery pluginã¨ãã¦ã¯é常ã«ãè¡åã®æªãæ¸ãæ¹ã§ãã®ã§çä¼¼ããªãã§ãã ããã
ã³ã¡ã³ãã«ããã¨ãã®æ¡å¼µæ¹æ³ã§åé¡ç¡ãã¿ããã§ã
if(typeof jQuery === 'function' && typeof jQuery.parse === 'undefined' ) jQuery.parse = function($_){ var i,$R = {}; $_ = arguments.length === 0 ? location.search : new String($_); if( (i = $_.indexOf('?')) != -1 ) $_ = $_.substring(i+1); if( (i = $_.indexOf('#')) != -1 ) $_ = $_.substring(0,i); jQuery.each( $_.split('&') ,function(){ var $_ = this.split('='); if( typeof $_[0] === 'undefined ' || $_[0] === '') return; var $k = decodeURIComponent($_[0]); var $v = $_.length === 1 ? true : decodeURIComponent($_[1]); if( $k.match(/(.+)\[\]$/) ){ $k = RegExp.$1; if( !jQuery.isArray($R[$k]) ) $R[$k] = []; $R[$k].push($v); }else{ $R[ $k ] = $v; } }); return $R; };
æºå
ãã®ä¸ã§jQueryã¨å ã»ã©ä½ã£ãjquery.parse.jsããã¼ããã¾ãã<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.min.js"></script> <script type="text/javascript" src="./jquery.parse.js"></script>
使ãæ¹
ã©ã¡ãããªãã¸ã§ã¯ããè¿ãã¾ãã
//å¼æ°ãç¡ãå ´ålocation.searchã解æãã¾ãã var $query = $.parse(); console.log($query); //æååã渡ãã¨æ¸¡ããæååã解æãã¾ãã var $query = $.parse('test.html?key1=value1&key2=value2_1&key2=value2_2&key3&key4=&key5[]=value5_1&key5[]=value5_2#hash'); console.log( $query ); console.log( 'key' in $query );//keyãåå¨ããã調ã¹ã console.log( $query['key1'] === 'value1' );//å³è¾ºããã®ã¾ã¾å¤ã«ãªã console.log( $query['key2'] === 'value2_2' );//åãååãï¼ååå¨ããå ´åå¾ããã®å¤ã§ä¸æ¸ãããã console.log( $query['key5'] );//ãã ãkeyã[]ã§çµããå ´åé åã«ãªã console.log( $query['key3'] === true );//=ãç¡ãå ´åtrueã«ãªã console.log( $query['key4'] === '' );//=ã®å³è¾ºãç¡ãå ´å空æåã«ãªã