我正在尝试获取查询字符串参数,并将其与动态生成的数组相匹配。
为了清晰起见而编辑该网址将类似于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>
答案 0 :(得分:2)
soldOut
是字符串,但数组中的值是整数。将soldOut
强制转换为int:
soldOut = +GetQueryStringParams('id');