我做错了什么?
我正在为每个产品编号的每个价格选项生成一个按钮,SQL 数据库中最多可能有 12 个价格选项。效果很好。对于创建的每个按钮,我为 div1price、div2 价格等、div1minorder、div2minorder 等、div1pricequantity、div2 价格数量等生成每个项目变量。因此,当按下价格选项按钮时,它会显示价格、最小订单和最小数量那个特定的尺寸。除此之外,所有工作仅在数据中包含数字时才有效 - 字符串会抛出错误,从而使对象失效。我知道我从根本上做错了什么,但不知道是什么。认为这一定与评估有关!请温柔一点——非常业余的编码员。谢谢你
价格选择 | 价格 | 价格数量 | 最小订单 |
---|---|---|---|
小 | 3英镑 | 每个 | 1 |
中 | 5英镑 | 情况2 | 2 |
大 | 7英镑 | 3 | 1 |
特大号 | 9英镑 | 每个 | 2 |
<script>
$('#divx').attr('id', 'div' + butno);
price = <% =(price.Fields.Item("itemprice").Value)%>;
minorder = <% =(price.Fields.Item("minquantity").Value)%>;
pricequantity = <% =(price.Fields.Item("pricequantity").Value)%>;
a = ('div' + butno + 'price');
a2 = ('div' + butno + 'minorder');
a3 = ('div' + butno + 'pricequantity');
eval ('var ' + a + '= ' + price + ';');
eval ('var ' + a2 + '= ' + minorder + ';');
eval ('var ' + a3 + '= ' + pricequantity + ';');
butno = butno+1;
</script>
我已经尝试过上述方法,当涉及所有数字时效果很好。逻辑表明我没有提取字符串。
抱歉,没有包含按钮的点击代码。这是 12 个可能的按钮中第一个的代码。
<script>
$("#div1").click(function(){
$("#bigprice").text('£' + div1price);
$("#minorder").text('Minimum Order Quantity: ' + div1minorder);
$("#pricequantity").text('Price Quantity: ' + div1pricequantity);
});
</script>
为了清楚起见,代码的 a、a2 和 a3 部分生成变量名称,eval 部分将数据库中的值分配给每个变量。可能不优雅,但似乎可以脱离字符串值工作
正如我在评论中已经提到的,只需将您的价格/小顺序变量括在转义的双/单引号中。一些示例代码
let x = 'test';
let y = 10;
let a1 = 'div' + 1;
let a2 = 'div' + 2;
eval('var ' + a1 + '= \"' + x + '\";');
eval('var ' + a2 + '= \"' + y + '\";');
console.log(div1);
console.log(div2);