在JQuery/Javascript中使用动态变量名进行加减
我正在为我的餐厅开发一个库存检查表。我的想法是,例如,我可以称一瓶半满的伏特加!根据该重量,以毫升为单位的体积将根据重量调节器和产品密度自动计算 代码是用PHP自动生成的。下面是一个例子,我选择了哪瓶伏特加,并基于这个选择,我想在跨度“1_liveWeight”中显示数量。由于经验有限,我遇到的问题是这一行代码:在JQuery/Javascript中使用动态变量名进行加减,javascript,jquery,Javascript,Jquery,我正在为我的餐厅开发一个库存检查表。我的想法是,例如,我可以称一瓶半满的伏特加!根据该重量,以毫升为单位的体积将根据重量调节器和产品密度自动计算 代码是用PHP自动生成的。下面是一个例子,我选择了哪瓶伏特加,并基于这个选择,我想在跨度“1_liveWeight”中显示数量。由于经验有限,我遇到的问题是这一行代码: var qty = (weight - adjuster) * density; 我希望它的功能如下: var qty = (weight - adjuster_!value sel
var qty = (weight - adjuster) * density;
我希望它的功能如下:
var qty = (weight - adjuster_!value selected from item_1!) * density!value selected from item_1!
两条线之间的点点滴滴!在我要插入值的位置
下面是php生成的代码摘录
HTML
JQuery
$(document).ready(function(){
$("#item_1").change(function(){
var item = $('#item_1').val();
var adjuster3 = $('#adjuster_3').val();
var density3 = $('#density_3').val();
var adjuster4 = $('#adjuster_4').val();
var density4 = $('#density_4').val();
var weight = $('#weight_1').val();
var qty = (weight - adjuster)*density+item;
$("#1_liveWeight").html("<b>"+ qty +"</b>");
});
});
我希望我已经充分解释了我的问题!谢谢你的帮助
DB您需要根据项目选择分配正确的调节器和密度变量:
$(document).ready(function(){
$("#item_1").change(function(){
var item = $('#item_1').val();
var adjuster3 = $('#adjuster_3').val();
var density3 = $('#density_3').val();
var adjuster4 = $('#adjuster_4').val();
var density4 = $('#density_4').val();
var weight = $('#weight_1').val();
weight = Number(weight);
var adjuster, density;
if(item == 3){
adjuster = Number(adjuster3);
density = Number(density3);
}
else if(item == 4){
adjuster = Number(adjuster4);
density = Number(density4);
}
var qty = (weight - adjuster) * density;
$("#1_liveWeight").html("<b>"+ qty +"</b>");
});
});
我可能会这样做:
var qty = (weight - adjuster_!value selected from item_1!) * density!value selected from item_1!
$document.readyfunction{
var密度=0;
var调节器=0;
$item_1.changefunction{
重新计算wgt;
};
$weight_1.keyup函数{
重新计算wgt;
};
重新计算wgt;
函数重新计算EWGT{
var item=$'item_1'.val;
var调节器=$‘调节器‘+item.val;
var density=$'density_'+item.val;
var-weight=$'weight_1'.val;
变量数量=重量-调节器*密度+项目;
$1_liveWeight.html+数量+;
}
};
斯米诺伏特加1000ml
绝对伏特加750ml
0我通过学习eval解决了这个问题 它按预期工作:
eval("var chosenAdjuster = adjuster"+item);
eval("var chosenDensity = density"+item);
var qty = (weight - chosenAdjuster) * chosenDensity;
我想说伏特加确实帮助我理解了很多东西,但我还是搞不清楚——你需要的是所选产品的详细信息,还是当你的下拉列表发生变化时所有产品的详细信息。不管怎么说,这里有些东西
$(document).ready(function(){
$("#item_1").change(function(){
var item = $('#item_1').val(); // may be 3 or 4 or whatever depends on choice
var adjuster = $('#adjuster_'+ item).val(); // dynamic selector
var density = $('#density_'+item).val();
var weight = $('#weight_'+item).val();
var qty = (weight - adjuster)*density; // density is constant at a given temp. for given liquid why were you chaging this? dilluting?
$("#"+item+"_liveWeight").html("<b>"+ qty +"</b>");
});
});
这可能有用,但这是可怕的练习,不要这样做。建议你看看其他贴出的答案。出于好奇,为什么是糟糕的练习?发布的其他选项并没有真正考虑到脚本是由php生成的,有些产品可能有1或2个选项,但其他产品可能有更多选项。让php按照上面的建议生成代码与这个小的2行程序相比是一件痛苦的事情。。。如果添加更多选项,则无需更改我的JavaScript中的任何内容。只需回显另一个选项,调整器的另一个匹配输入,以及HTML中密度的另一个输入,就像您为解决方案所做的一样,还有其他原因。谷歌。