【问题标题】:Jquery To get url paramaeters [duplicate]Jquery获取url参数[重复]
【发布时间】:2012-05-21 06:05:35
【问题描述】:

可能重复:
Get query string values in JavaScript

如果我有这样的网址 更新 test

我想检查 URL 是否有参数 q。

我可以使用 $get() 来执行此操作吗?

If(urlparamerter == q)
{

   do some thing

}

是否有任何 jquery 内置函数可以做到这一点?

提前致谢!

【问题讨论】:

    标签: jquery url query-string


    【解决方案1】:

    不,没有 jQuery 内置函数可以做到这一点。您可以使用以下函数,从这个SO answer

    function getParameterByName(name) {
    
        var match = RegExp('[?&]' + name + '=([^&]*)')
                        .exec(window.location.search);
    
        return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
    
    }
    

    要获取q 参数,只需调用它

    var qvalue = getParameterByName('q');
    

    更新

    如果您想通过传递url 而不是使用current page's url 来使用此功能,请修改以下功能

    function getParameterByName(name,url) {
    
        var match = RegExp('[?&]' + name + '=([^&]*)')
                        .exec(url);
    
        return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
    
    }
    

    然后你可以这样称呼它

    var qvalue = getParameterByName('q','www.test.com?q=1')
    

    Working Fiddle

    【讨论】:

    【解决方案2】:

    我鼓励您查看 jQuery URL Parser 插件。这是与 url 和 queryString 数据交互的一种非常直接的方式:

    var q = $.url().param("q"); // Gets the q parameter
    

    【讨论】:

      【解决方案3】:

      GET参数可以从document.location.search获取:

      var $_GET = {};
      
      document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () {
          function decode(s) {
              return decodeURIComponent(s.split("+").join(" "));
          }
      
          $_GET[decode(arguments[1])] = decode(arguments[2]);
      });
      
      document.write($_GET["test"]);
      

      或者,这是一个更通用的版本:

      function getQueryParams(qs) {
          qs = qs.split("+").join(" ");
          var params = {},
              tokens,
              re = /[?&]?([^=]+)=([^&]*)/g;
      
          while (tokens = re.exec(qs)) {
              params[decodeURIComponent(tokens[1])]
                  = decodeURIComponent(tokens[2]);
          }
      
          return params;
      }
      
      var $_GET = getQueryParams(document.location.search);
      

      或者,更好的是,使用 PHP 获取它们:

      var $_GET = <?php echo json_encode($_GET); ?>;
      

      这个答案来自this thread。

      【讨论】:

        猜你喜欢
        • 2015-05-14
        • 2013-04-09
        • 1970-01-01
        • 1970-01-01
        • 2015-09-07
        • 1970-01-01
        • 2013-07-04
        • 2022-01-18
        • 2016-06-28
        相关资源
        最近更新 更多