您的位置:首页 > Web前端 > JQuery

js/jquery 获取url参数

2011-03-26 20:27 351 查看
js代码: functionGetQueryString(name) { varreg=newRegExp("(^|&)"+name+"=([^&]*)(&|$)"); varr=window.location.search.substr(1).match(reg); if(r!=null)returnunescape(r[2]);returnnull; } URL的参数&参数名1=XXXX&参数名2=XXXX&参数名3=XXXX alert(GetQueryString("参数名1")); alert(GetQueryString("参数名2")); alert(GetQueryString("参数名3"));jquery代码:把下面代码。放到js文件中
/***jQuery.query-QueryStringModificationandCreationforjQuery*WrittenbyBlairMitchelmore(blairDOTmitchelmoreATgmailDOTcom)*LicensedundertheWTFPL(http://sam.zoy.org/wtfpl/).*Date:2009/8/13**@authorBlairMitchelmore*@version2.1.6***/newfunction(settings){//VariousSettingsvar$separator=settings.separator||'&';var$spaces=settings.spaces===false?false:true;var$suffix=settings.suffix===false?'':'[]';var$prefix=settings.prefix===false?false:true;var$hash=$prefix?settings.hash===true?"#":"?":"";var$numbers=settings.numbers===false?false:true;jQuery.query=newfunction(){varis=function(o,t){returno!=undefined&&o!==null&&(!!t?o.constructor==t:true);};varparse=function(path){varm,rx=/\[([^[]*)\]/g,match=/^([^[]+?)(\[.*\])?$/.exec(path),base=match[1],tokens=[];while(m=rx.exec(match[2]))tokens.push(m[1]);return[base,tokens];};varset=function(target,tokens,value){varo,token=tokens.shift();if(typeoftarget!='object')target=null;if(token===""){if(!target)target=[];if(is(target,Array)){target.push(tokens.length==0?value:set(null,tokens.slice(0),value));}elseif(is(target,Object)){vari=0;while(target[i++]!=null);target[--i]=tokens.length==0?value:set(target[i],tokens.slice(0),value);}else{target=[];target.push(tokens.length==0?value:set(null,tokens.slice(0),value));}}elseif(token&&token.match(/^\s*[0-9]+\s*$/)){varindex=parseInt(token,10);if(!target)target=[];target[index]=tokens.length==0?value:set(target[index],tokens.slice(0),value);}elseif(token){varindex=token.replace(/^\s*|\s*$/g,"");if(!target)target={};if(is(target,Array)){vartemp={};for(vari=0;i<target.length;++i){temp[i]=target[i];}target=temp;}target[index]=tokens.length==0?value:set(target[index],tokens.slice(0),value);}else{returnvalue;}returntarget;};varqueryObject=function(a){varself=this;self.keys={};if(a.queryObject){jQuery.each(a.get(),function(key,val){self.SET(key,val);});}else{jQuery.each(arguments,function(){varq=""+this;q=q.replace(/^[?#]/,'');//removeanyleading?||#q=q.replace(/[;&]$/,'');//removeanytrailing&||;if($spaces)q=q.replace(/[+]/g,'');//replace+'swithspacesjQuery.each(q.split(/[&;]/),function(){varkey=decodeURIComponent(this.split('=')[0]||"");varval=decodeURIComponent(this.split('=')[1]||"");if(!key)return;if($numbers){if(/^[+-]?[0-9]+\.[0-9]*$/.test(val))//simplefloatregexval=parseFloat(val);elseif(/^[+-]?[0-9]+$/.test(val))//simpleintregexval=parseInt(val,10);}val=(!val&&val!==0)?true:val;if(val!==false&&val!==true&&typeofval!='number')val=val;self.SET(key,val);});});}returnself;};queryObject.prototype={queryObject:true,has:function(key,type){varvalue=this.get(key);returnis(value,type);},GET:function(key){if(!is(key))returnthis.keys;varparsed=parse(key),base=parsed[0],tokens=parsed[1];vartarget=this.keys[base];while(target!=null&&tokens.length!=0){target=target[tokens.shift()];}returntypeoftarget=='number'?target:target||"";},get:function(key){vartarget=this.GET(key);if(is(target,Object))returnjQuery.extend(true,{},target);elseif(is(target,Array))returntarget.slice(0);returntarget;},SET:function(key,val){varvalue=!is(val)?null:val;varparsed=parse(key),base=parsed[0],tokens=parsed[1];vartarget=this.keys[base];this.keys[base]=set(target,tokens.slice(0),value);returnthis;},set:function(key,val){returnthis.copy().SET(key,val);},REMOVE:function(key){returnthis.SET(key,null).COMPACT();},remove:function(key){returnthis.copy().REMOVE(key);},EMPTY:function(){varself=this;jQuery.each(self.keys,function(key,value){deleteself.keys[key];});returnself;},load:function(url){varhash=url.replace(/^.*?[#](.+?)(?:\?.+)?$/,"$1");varsearch=url.replace(/^.*?[?](.+?)(?:#.+)?$/,"$1");returnnewqueryObject(url.length==search.length?'':search,url.length==hash.length?'':hash);},empty:function(){returnthis.copy().EMPTY();},copy:function(){returnnewqueryObject(this);},COMPACT:function(){functionbuild(orig){varobj=typeoforig=="object"?is(orig,Array)?[]:{}:orig;if(typeoforig=='object'){functionadd(o,key,value){if(is(o,Array))o.push(value);elseo[key]=value;}jQuery.each(orig,function(key,value){if(!is(value))returntrue;add(obj,key,build(value));});}returnobj;}this.keys=build(this.keys);returnthis;},compact:function(){returnthis.copy().COMPACT();},toString:function(){vari=0,queryString=[],chunks=[],self=this;varencode=function(str){str=str+"";if($spaces)str=str.replace(//g,"+");returnencodeURIComponent(str);};varaddFields=function(arr,key,value){if(!is(value)||value===false)return;varo=[encode(key)];if(value!==true){o.push("=");o.push(encode(value));}arr.push(o.join(""));};varbuild=function(obj,base){varnewKey=function(key){return!base||base==""?[key].join(""):[base,"[",key,"]"].join("");};jQuery.each(obj,function(key,value){if(typeofvalue=='object')build(value,newKey(key));elseaddFields(chunks,newKey(key),value);});};build(this.keys);if(chunks.length>0)queryString.push($hash);queryString.push(chunks.join($separator));returnqueryString.join("");}};returnnewqueryObject(location.search,location.hash);};}(jQuery.query||{});//PassinjQuery.queryassettingsobject
[code]
如果想获取test,则可以引入插件后,用如下方法获取:vartest=$.query.get('test');如果参数有多个相同的名称,则可以这样:vararr=$.query.get('testy');输出:[值1,值2,值3...]如果要获取多个相同名称中的某一个,可以这样:vararrayElement=$.query.get('testy[1]');此插件不仅能获取参数,也能设置参数。设置一个参数:varnewUrl=$.query.set("section",5).toString();输出:"?section=5"设置两个参数:varnewUrl=$.query.set("section",5).set("action","do").toString();输出:"?action=do§ion=5"删除一个参数:varoldQueryAgain=$.query.REMOVE("type");清空所有参数:varemptyQuery=$.query.empty();复制所有参数:varstillTheSame=$.query.copy();
[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: