通过组合两个变量名创建一个jquery变量


Create a jquery variable by combining two variable names

我在购物车中遇到了问题,当有人增加订购产品的数量时,购物车动态地将文本"产品有库存"更改为"缺货"。

该变量是在PHP中生成的,用于获取产品ID作为变量名,并将库存数量存储到该变量中。当我试图在jquery的。change函数中调用该变量时,问题出现了。

在这里,变量是通过使用产品ID创建的。

    <script>
    var stock_<?php echo $arrCartItem['intProductId']; ?> = "<?php echo $arrCartItem['intStock']; ?>";
    </script>

在HTML输入字段中,数据被发送到javascript:

<td><input type="number" value="' . $arrCartItem['intQuantity'] . '" min="1"     class="cartQuantity" data-cartid="'.$arrCartItem['cartId'].'" data-productid="'.$arrCartItem['intProductId'].'" /></td>
例如,当产品2223已添加到购物车中时,这将创建stock_2223,并在其中存储数字8,这是库存产品的数量。

现在我尝试在。change函数中调用它:

$('.cartQuantity').change(function(){
var curThis      = $(this);
var intQuantity  = $(this).val();
var intCartId    = $(this).data('cartid');
var intProductId = $(this).data('productid');
if (intQuantity > stock_XXXX) 
{
    // not enough in stock
    alert("not enough in stock");
}
else {
    alert("enough in stock");
}

当我尝试这样做时:

var intProductId = "stock_"+intProductId;

会导致jquery返回字符串"stock_2228"而不是包含"8"的变量。

我的问题是,我如何用购物车中的商品编号替换stock_XXXX,在这种情况下,我会得到stock_2223而不需要在代码中键入它,从而在if语句中给jquery数字"8"。

是否可以通过输入变量名的第一部分stock_来创建变量名,并让第二部分由变量intProductId创建?希望你能回答我的问题!

解决方案

window['your_dynamic_var_name'];

试试这个

var stock_qty = window["stock_"+intProductId];

例2:作为op的要求