【问题标题】:How to check if url query string equals something with javascript (or jquery) [duplicate]如何检查url查询字符串是否等于javascript(或jquery)[重复]
【发布时间】:2021-10-12 19:40:09
【问题描述】:

我知道这个问题似乎有点绕,但 90% 的答案都指向一个对我不起作用的解决方案 (indexof > -1)。

if ( window.location.href.indexOf("product=3") > -1 || window.location.href.indexOf("product=2") > -1 ) {
    alert('success');
}else {
  alert('nothing');
}

问题在于,对于产品 30,这也会提示成功。

是否有一个简单的解决方案可以检测 url 查询字符串中的完全匹配。

例如

mycoolsite.com/cart/?type=buynow&product=30

如果乘积等于 30,我们如何使用 javascript 或 jquery 进行检查?

【问题讨论】:

  • 欢迎来到 Stack Overflow。我建议查看stackoverflow.com/questions/4656843/… 使用最佳答案,您可以获得所有值,所以现在您可以检查它是3 还是30
  • 感谢@Twisty,非常有帮助。在我的搜索中没有看到这个。已经应用它并且效果很好。谢谢!

标签: javascript jquery


【解决方案1】:

使用以下内容:Get querystring from URL using jQuery

我建议如下:

$(function() {
  function getUrlVars(url) {
    var vars = {},
      hash;
    if (url.indexOf("?") < 0) {
      return false;
    }
    var hashes = url.substring(url.indexOf("?") + 1)
    $.each(hashes.split("&"), function(i, v) {
      hash = v.split('=');
      vars[hash[0]] = hash[1];
    });
    //console.log(url, hashes, vars);
    return vars;
  }

  var queryData;
  queryData = getUrlVars(window.location.href + "?buynow&product=3");
  console.log(queryData);
  queryData = getUrlVars(window.location.href + "?buynow&product=3&product=2");
  console.log(queryData);
  queryData = getUrlVars(window.location.href + "?buynow&product[]=3&product[]=2");
  console.log(queryData);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="result"></div>

此代码有一些注意事项。正如您在我的测试中看到的那样,如果您有多个项目,如果相同的变量名称或索引,它将覆盖其他值。它也不会在数组中读取。您可以为此添加一个检查并编写一个函数来处理数组部分。

如果您的 Query Hash 总是更基本的,这可以很好地工作。

【讨论】:

    【解决方案2】:

    已按照 Twisty 在 cmets 中的推荐使用了这篇文章中的功能,并且效果很好。

    Get querystring from URL using jQuery

    【讨论】:

      猜你喜欢
      • 2012-09-21
      • 1970-01-01
      • 2021-12-11
      • 2012-02-14
      • 2016-11-20
      • 1970-01-01
      • 2012-03-26
      • 1970-01-01
      • 2016-12-21
      相关资源
      最近更新 更多