【问题标题】:read the GET variables in url JQuery读取 url JQuery 中的 GET 变量
【发布时间】:2019-11-06 12:12:39
【问题描述】:

很抱歉另一个“简单”问题,但有没有一种简单的方法可以从 URL 读取 GET 变量。例子。我有一个 url http://www.domain.com/page.php?var1=1 在我的情况下,我将只有 1 个变量,即 var1var2(变量可以更改,但每个 url 只有一个)。我看到的所有 tuts 都与数组有关,而不是“单例” 好吧,我知道数组解决方案可能更好,但这只是一个简单的单一 get 变量。有什么建议么?提前致谢

【问题讨论】:

标签: javascript jquery variables get


【解决方案1】:
var split = location.search.replace('?', '').split('=')

split[0] 是您的 var 名称,split[1] 是您的 var 值。这段代码实际上并不需要 jQuery ;)

至于twiz的评论,拆分多个变量可以这样:

var split = location.search.replace('?', '').split('&').map(function(val){
  return val.split('=');
});

您可以通过split[index][0] 访问变量名,通过split[index][1] 访问值。

当然你也可以使用第二个 sn-p 而不是第一个作为一个变量。

【讨论】:

  • 你不需要用'&'分割多个变量吗?
  • 我只是使用 '&' && '=' 作为传递给 split 函数的参数。似乎很好地解析了结果。
【解决方案2】:

我在我的默认 javascript 文件中使用它。

var get = [];
location.search.replace('?', '').split('&').forEach(function (val) {
    split = val.split("=", 2);
    get[split[0]] = split[1];
});

现在您可以按名称使用它们:

get["var1"]

【讨论】:

    【解决方案3】:

    如果 var 存在,您可以使用此函数从 url 返回指定 var 名称的值。否则你会得到一个空字符串。

    function getUrlValue(varName) {
        var split = $(location).attr('href').split('?');
        var value = '';
        if (split.length == 2) {
            split = split[1].split('&');
            for (var i = 0; i < split.length; i+=1) {
                var keyValue = split[i].split('=');
                if (keyValue.length == 2 && keyValue[0] == varName) {
                    value = keyValue[1];
                    break;
                }
            }
        }
        return value;
    }
    

    【讨论】:

      【解决方案4】:

      用ES2019创建对象:

      let GET = Object.fromEntries( location.search
                                            .replace( '?', '' )
                                            .split( '&' )
                                            .map( i => i.split( '=' ) ) );

      Object.fromEntries 方法从数组创建一个对象。

      对于 URL http://www.example.com/page?var1=1&amp;var2=2,上面的代码返回对象

      {
        var1: '1',
        var2: '2'
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多