我正在嘗試抓取查詢字符串參數並將其與動態生成的數組進行匹配。從查詢字符串獲取變量,將其與Javascript中的數組匹配
編輯爲清楚起見的網址會像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>
因此,當它不在數組中時不會返回false?因爲小提琴工作得很好。你可以向我們展示一些'GetQueryStringParams('id')'的例子嗎? – Spokey
是的,小提琴可以工作,但是當我將所有代碼放在一起時,看起來像GetQueryStringParams('id')實際上並沒有從查詢字符串中拉出相關信息。這就是我想說的。我從這裏得到它:http://css-tricks.com/snippets/javascript/get-url-variables/ – Patrick
是啊,如果我不得不猜測查詢字符串解析有什麼問題。你的看起來不壞,但我會使用一個經過驗證的庫,而不是調試它http://stackoverflow.com/questions/3788125/jquery-querystring – jm0