您真正想要的是jQuery URL Parser插件。使用此插件,获取特定URL参数(对于当前URL)的值如下所示:
$.url().param('foo');
如果要使用参数名称作为键而参数值作为值的对象,则只需param()
不带参数的调用,如下所示:
$.url().param();
该库还可以与其他网址一起使用,而不仅仅是当前网址:
$.url('http://allmarkedup.com?sky=blue&grass=green').param();
$('#myElement').url().param(); // works with elements that have 'src', 'href' or 'action' attributes
由于这是一个完整的URL解析库,因此您还可以从URL获取其他信息,例如指定的端口或路径,协议等:
var url = $.url('http://allmarkedup.com/folder/dir/index.html?item=value');
url.attr('protocol'); // returns 'http'
url.attr('path'); // returns '/folder/dir/index.html'
它还具有其他功能,请查看其主页以获取更多文档和示例。
而不是写你自己的URI解析器为这一特定目的的还挺作品在大多数情况下,使用一个实际的URI解析器。根据答案的不同,其他答案中的代码可以返回'null'
而不是null
,不适用于空参数(?foo=&bar=x
),无法一次解析并返回所有参数,如果您反复查询URL中的参数等,则重复该工作。
使用实际的URI解析器,不要自己动手。
对于那些讨厌jQuery的人,有一个纯JS的插件版本。