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

时间:2013-12-09 14:19:03

标签: javascript jquery liquid

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

为了清晰起见而编辑该网址将类似于www.example.com?some=stuff&id=dynamicNumber

我从液体(shopify)输出我的数组,当我查看源时,它似乎正确呈现。

我的失败点似乎是设置实际变量“soldOut”,因为如果我将其中一个我知道的实际值放在数组中,它将返回true。

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

我只是缺少查询字符串函数,因为我不知道如何使用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>

1 个答案:

答案 0 :(得分:2)

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

soldOut = +GetQueryStringParams('id');