今天看文章的时候,看到一篇文章,非常好,这里我也尝试了一下
?
JQuery 怎么得到request url中的参数呢?
?
其实很简单,就是循环遍历url,然后找到“&”这个符号
?
?
下面是源代码
?
?
// Read a page's GET URL variables and return them as an associative array. function getUrlVars() { var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for(var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; }
?
?
上面是得到URL的数组
?
我们打个比方
?
1.URL如下
?
?
http://www.example.com/?me=myValue&name2=SomeOtherValue?
?
2.我们在浏览器中可以看到数组如下
?
?
{ "me" : "myValue", "name2" : "SomeOtherValue" }?
?
3.得到相应的参数的值
?
?
var first = getUrlVars()["me"]; // To get the second parameter var second = getUrlVars()["name2"];?
?
?
简单吧
?
下面JQuery的实现
?
?
$.extend({ getUrlVars: function(){ var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for(var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; }, getUrlVar: function(name){ return $.getUrlVars()[name]; } });
?
?得到相应的值的方法
?
?
// Get object of URL parameters var allVars = $.getUrlVars(); // Getting URL var by its nam var byName = $.getUrlVar('name');
?
?
简简单单的,非常好用。。。希望大家顶起来
?
?
?
参考:http://jquery-howto.blogspot.jp/2009/09/get-url-parameters-values-with-jquery.html
1 楼
freezingsky
2012-10-11
不错,这是客户端处理方式。之间都是在后台处理后,包装到前台,再通过JQuery来搞的。
2 楼
ffychina
2012-10-11
要注意url的参数应该是一个数组而不是一个对象,如果是转换成对象,应该把相同的参数名用逗号隔开。以下是我copy别人的一个实现:
// 获取QueryString的数组 function getQueryString(){ var result=location.search.match(new RegExp("[\?\&][^\?\&]+=[^\?\&]+","g")); if(result==null){ return ""; } for(var i=0;i<result.length;i++){ result[i]=result[i].substring(1); } return result; }