jquery获取url参数
2013-10-29 10:03
369 查看
js/jquery获取url参数
2010年04月27日星期二13:45
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文件中
转自:http://hi.baidu.com/lxsunshuai/blog/item/4192a813cfc21ddcf6039e15.html
2010年04月27日星期二13:45
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){ //VariousSettings var$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+'swithspaces jQuery.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))//simplefloatregex val=parseFloat(val); elseif(/^[+-]?[0-9]+$/.test(val))//simpleintregex val=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); else o[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)); else addFields(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
如果想获取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();
转自:http://hi.baidu.com/lxsunshuai/blog/item/4192a813cfc21ddcf6039e15.html
相关文章推荐
- 使用jquery获取url以及jquery获取url参数的方法
- jQuery插件---获取URL参数.
- jQuery获取URL请求参数的方法
- jQuery封装的获取Url中的Get参数示例
- Jquery 获取 URL参数
- jquery获取URL中参数解决中文乱码问题的两种方法
- jquery 获取url参数
- jquery获取url参数的方法
- jquery 获取url参数插件实例代码
- js、jquery获取当前url中各个参数
- JQuery获取Url中的参数
- js&jquery获取url域名及参数的方法
- jQuery获取url参数插件
- 使用jquery获取url及url参数的方法及定义JQuery扩展方法
- js/jquery 获取url参数
- 使用jquery获取url以及jquery获取url参数的方法
- JQuery 获取URL中传递的参数
- 扩展jQuery方法,获取URL请求参数
- jquery获取url参数
- jQuery插件---获取URL参数.