【问题标题】:how to get GET variable's value in javascript? [duplicate]如何在javascript中获取GET变量的值? [复制]
【发布时间】:2012-08-16 11:44:30
【问题描述】:

可能重复:
Get query string values in JavaScript

如何在 javascript 中获取 get 变量?

我想在 jquery 函数中传递它。

function updateTabs(){

            //var number=$_GET['number']; how can i do this?
        alert(number);
        $( "#tabs" ).tabs({ selected: number });

    }

【问题讨论】:

标签: javascript get


【解决方案1】:

写:

var $_GET=[];
window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(a,name,value){$_GET[name]=value;});

然后$_GET['number']

【讨论】:

  • 不要在没有var的JS中创建变量。我建议避免在 JS 中以 $ 开头变量名,这并不典型。不要使用数组来保存键/值对,使用普通对象。
  • @Quentin:变量前面的美元符号通常用作 jquery 对象的约定。以var $rows = $("tr") 为例。
  • @JordanArseno — 我从来没有说过标准不允许这样做,只是说它不是 JavaScript 的典型
【解决方案2】:
var $_GET = {};
if(document.location.toString().indexOf('?') !== -1) {
    var query = document.location
                   .toString()
                   // get the query string
                   .replace(/^.*?\?/, '')
                   // and remove any existing hash string (thanks, @vrijdenker)
                   .replace(/#.*$/, '')
                   .split('&');

    for(var i=0, l=query.length; i<l; i++) {
       var aux = decodeURIComponent(query[i]).split('=');
       $_GET[aux[0]] = aux[1];
    }
}
//get the 'index' query parameter
alert($_GET['index']);

【讨论】:

  • 我认为 unescape() 需要在代码的第 9 行运行。除此之外,这是一个很好的解决方案。
  • 更好地使用decodeURIComponent:参数名称和参数值。
  • @AliakseiNikuliak:谢谢,你是对的。我已经更新了我的答案。
  • 你不是说if (...index('?') !== -1)吗?这是一个很大的不同。
  • @phileaton 你是对的。我不知道那是怎么滑倒的……直到现在其他人都是怎么做的。谢谢。
【解决方案3】:

试试这个

if (location.search != "")
{
    var x = location.search.substr(1).split(";")
    for (var i=0; i<x.length; i++)
    {
         var y = x[i].split("=");
         alert("Key '" + y[0] + "' has the content '" + y[1]+"'")
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    相关资源
    最近更新 更多