我只需要从网址获取 idi
变量的值。
除了拆分“&
”之外,以下代码中的一切正常。
示例:如果这是网址:www.site.com/page?idi=22&selse=88
我想从网址获取 idi
参数的值,并将其打印为隐藏文字输入字段的值。
<script>
q=window.location.search.substring(1);
idi="idi";
sq=q.split("&");
l=sq.length;
for(i=0;i<=l;i++)
{
qv=sq[i].split("=");
if(qv[0]==idi)
{
qvr=qv[1].Split('&');
document.write(<input type='text' value='"+qvr[0]+"' name='get-idi'/>");
break;
}
}
</script>
改进或帮助我为此形成一个脚本。谢谢!
答案 0 :(得分:0)
在这里,这应该可以帮到你:
function getParams(url) {
var result = {}
, params = /[?&]([^?&=]+)=([^?&]+)?/g;
decodeURIComponent(url).replace(params, function(_,key,val) {
result[key] = isNaN(val) ? val : +val;
});
return result;
}
console.log(getParams('www.site.com/page?idi=22&selse=88'));
//^= {idi: 22, selse: 88}
答案 1 :(得分:0)
这应该可以正常使用
var GET = function(key){
var str = window.location.search.substr(1);
var array = str.split('&');
var map = {};
for (var i = 0; i < array.length; ++i) {
var temp = array[i].split('=');
map[temp[0]] = decodeURIComponent(temp[1]);
}
delete map[''];
return (key !== undefined)? map[key] : map;
}
答案 2 :(得分:0)
如果您只是尝试获得一个特定值idi
,那么您可以使用简单的正则表达式:
if ((match = window.location.match(/[?&]idi=(\d+)/)) != null){
alert('IDI: ' + match[1]);
}
正则表达式将idi=
后的任何数字捕获到match[1]
答案 3 :(得分:0)
试试这个,
function getUrlParams(url, key) {
var vars = [], hash;
var hashes = url.slice(url.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[key];
}
alert(getUrlParams("www.site.com/page?idi=22&selse=88", "idi"));
或者您可以使用https://github.com/allmarkedup/jQuery-URL-Parser
JQuery插件做同样的工作,例如检索 idi 查询字符串参数的值,你可以使用
$.url().param('idi');
更新:如果你想使用window.location.href
试试这个
function getUrlParams(key) {
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[key];
}