我见过很多jQuery示例,其中参数大小和名称都是未知的。
我的URL只会有一个字符串
http://example.com?sent=yes
我只想检测:
sent存在吗? 它等于"是"吗?
我见过很多jQuery示例,其中参数大小和名称都是未知的。
我的URL只会有一个字符串
http://example.com?sent=yes
我只想检测:
sent存在吗? 它等于"是"吗?
当前回答
另一种解决方案使用jQuery和JSON,因此您可以通过对象访问参数值。
var loc = window.location.href;
var param = {};
if(loc.indexOf('?') > -1)
{
var params = loc.substr(loc.indexOf('?')+1, loc.length).split("&");
var stringJson = "{";
for(var i=0;i<params.length;i++)
{
var propVal = params[i].split("=");
var paramName = propVal[0];
var value = propVal[1];
stringJson += "\""+paramName+"\": \""+value+"\"";
if(i != params.length-1) stringJson += ",";
}
stringJson += "}";
// parse string with jQuery parseJSON
param = $.parseJSON(stringJson);
}
假设您的URL是http://example.com/?search=hello+world&language=en&page=3
在此之后,只需要像这样使用参数:
param.language
返回
en
最有用的用法是在页面加载时运行它,并利用全局变量在任何需要参数的地方使用它们。
如果参数包含数值,则只需解析该值。
parseInt(param.page)
如果没有参数,param将只是一个空对象。
其他回答
从字符串中获取参数:
Object.defineProperty(String.prototype, 'urlParam', {
value: function (param) {
"use strict";
var str = this.trim();
var regex = "[\?&]" + param + "=([^&#]*)";
var results = new RegExp(regex, "i").exec(str);
return (results !== null) ? results[1] : '';
}
});
使用方法:
var src = 'http://your-url.com/?param=value'
console.log(src.urlParam(param)); // returns 'value'
我希望这能有所帮助。
<script type="text/javascript">
function getParameters() {
var searchString = window.location.search.substring(1),
params = searchString.split("&"),
hash = {};
if (searchString == "") return {};
for (var i = 0; i < params.length; i++) {
var val = params[i].split("=");
hash[unescape(val[0])] = unescape(val[1]);
}
return hash;
}
$(window).load(function() {
var param = getParameters();
if (typeof param.sent !== "undefined") {
// Do something.
}
});
</script>
这将给你一个很好的工作对象
function queryParameters () {
var result = {};
var params = window.location.search.split(/\?|\&/);
params.forEach( function(it) {
if (it) {
var param = it.split("=");
result[param[0]] = param[1];
}
});
return result;
}
然后;
if (queryParameters().sent === 'yes') { .....
这个方法很简单,对我来说很管用
$.urlParam = function(name){
var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
return results[1] || 0;
}
如果你的url是http://www.yoursite.com?city=4
试试这个
console.log($.urlParam('city'));
$.urlParam = function(name) {
var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
return results[1] || 0;
}