从查询字符串中获取变量,将其与Javascript中的数组匹配

Get variable from query string, match it to an array in Javascript

本文关键字:Javascript 数组 字符串 查询 获取 变量      更新时间:2024-05-24

我正在尝试获取一个查询字符串参数,并将其与正在动态生成的数组匹配。

为清晰起见进行编辑url将类似于www.example.com?some=stuff&id=动态编号

我正在从liquid(shopify)输出我的数组,当我查看源代码时,它似乎正在正确渲染。

我的失败点似乎是设置实际变量"soldOut",因为如果我把我知道会在数组中的一个实际值放进去,它就会返回true。

使用静态数组和功能匹配:http://jsfiddle.net/zHuDU/5/

我只是错过了querystring函数,因为我不知道如何使用JSfiddle 来实现这一点

这是我的代码:

<script>
  var testArray = [
  // shopify liquid to generate values
{% for variant in product.variants %}
{% if variant.inventory_quantity == 0 %}
{{ variant.id }},
{% else %}
{% endif %}
{% endfor %}
    ];
function GetQueryStringParams(sParam)
{
    var sPageURL = window.location.search.substring(1);
    var sURLVariables = sPageURL.split('&');
    for (var i = 0; i < sURLVariables.length; i++) 
    {
        var sParameterName = sURLVariables[i].split('=');
        if (sParameterName[0] == sParam) 
        {
            return sParameterName[1];
        }
    }
}
var soldOut = GetQueryStringParams('id');

  if(jQuery.inArray(soldOut, testArray)!==-1)  {
      console.log("The ID was in the test array (out of stock)");
  }
  else{
      console.log("The ID wasn't in the test array (so it's in stock or I messed up)");
  }
</script>

soldOut是字符串,但数组中的值是整数。将soldOut强制转换为int:

soldOut = +GetQueryStringParams('id');