说,如果我有这样的网址更新 test
我想检查网址是否有参数q。
我可以使用$ get()来执行此操作。
If(urlparamerter == q)
{
do some thing
}
是否有任何jquery构建函数来执行此操作?
提前致谢!
答案 0 :(得分:3)
不,没有jQuery Built in功能来做到这一点。您可以使用以下SO answer
中的功能function getParameterByName(name) {
var match = RegExp('[?&]' + name + '=([^&]*)')
.exec(window.location.search);
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
要获取q
参数,只需将其称为
var qvalue = getParameterByName('q');
<强>更新强>
如果您想通过传递url
而不是使用current page's url
来使用此功能,请修改如下所示的功能
function getParameterByName(name,url) {
var match = RegExp('[?&]' + name + '=([^&]*)')
.exec(url);
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
然后你可以像
一样调用它var qvalue = getParameterByName('q','www.test.com?q=1')
答案 1 :(得分:1)
我建议您查看jQuery URL Parser插件。这是一种非常直接的与url和queryString数据交互的方式:
var q = $.url().param("q"); // Gets the q parameter
答案 2 :(得分:0)
对于GET参数,您可以从document.location.search
:
var $_GET = {};
document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () {
function decode(s) {
return decodeURIComponent(s.split("+").join(" "));
}
$_GET[decode(arguments[1])] = decode(arguments[2]);
});
document.write($_GET["test"]);
或者,这是一个更通用的版本:
function getQueryParams(qs) {
qs = qs.split("+").join(" ");
var params = {},
tokens,
re = /[?&]?([^=]+)=([^&]*)/g;
while (tokens = re.exec(qs)) {
params[decodeURIComponent(tokens[1])]
= decodeURIComponent(tokens[2]);
}
return params;
}
var $_GET = getQueryParams(document.location.search);
或者,更好的是,使用PHP抓住它们:
var $_GET = <?php echo json_encode($_GET); ?>;
此答案来自this thread。