0

我只需idi要从 url 中获取变量的值。

除了拆分“”之外,下面的代码中一切正常&

示例:如果这是网址:www.site.com/page?idi=22&selse=88

我想idi从 url 中获取参数的值并将其打印为隐藏文本输入字段的值。

<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>

改进或帮助我为此编写脚本。谢谢!

4

4 回答 4

0

如果您只是想获得一个特定的值idi,那么您可以使用一个简单的正则表达式:

if ((match = window.location.match(/[?&]idi=(\d+)/)) != null){
    alert('IDI: ' + match[1]);
}

正则表达式捕获idi=into之后的任何数字match[1]

于 2013-06-03T08:38:08.650 回答
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}
于 2013-06-03T08:27:45.073 回答
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"));

演示:http: //jsfiddle.net/EscBg/

或者你可以使用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];
}
于 2013-06-03T08:48:14.560 回答
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;
}
于 2013-06-03T08:33:53.827 回答