首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javasscript temp变量

javasscript temp变量
EN

Stack Overflow用户
提问于 2010-07-24 21:28:33
回答 1查看 2K关注 0票数 0

嗨,这就是情况

代码语言:javascript
复制
var seat_sel = document.getElementById('cmb_num_seat').value;

var cashp = document.getElementById('hdn_price').value;

var CHILD_PRICE = '5'

if(seat_sel > 0){
    CHILD_PRICE = CHILD_SEAT_PRICE * seat_selected;
}else{
        CHILD_PRICE = CHILD_SEAT_PRICE * seat_selected;
}   
   document.getElementById('disp_2_div').innerHTML = formatCurrency(parseInt(cashp)+parseInt(CHILD_PRICE));
   document.getElementById('hdn_price').value = formatCurrency(parseInt(cashp)+parseInt(CHILD_PRICE))

例如..。

我有cashp=20

当用户选择cmb_num_seat(DROP DOWN)时,价格将增加,即

代码语言:javascript
复制
20+(5*3)=20+15=45

假设我在下拉列表中选择了3...

但在某些情况下,计算会出错。

例如选择3,然后选择4,然后选择2,然后选择1,

在这种情况下,旧值hdn_price将覆盖加法的...bcoz ...

有没有办法先在某个变量中取值,然后再进行计算……...maintain。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-24 22:06:05

我不知道你的代码到底有什么问题,也不知道你认为它是什么,我看到了几个潜在的问题:

  • 你疯狂地混合数据类型。
  • 你使用了一个似乎没有被初始化的变量

另外,您有一条在这两种情况下执行完全相同操作的if语句,并且您将CHILD_PRICE初始化为一个字符串,但是下面的代码总是将其替换为一个数值。

如果您要对数字进行计算,请在进行计算之前解析这些值。不要害怕使用更多的变量作为中间值,这不会对性能产生任何明显的影响,而且会使代码更具可读性。

如果您希望保持起始价,则应在页面加载时从隐藏字段中读取一次值:

代码语言:javascript
复制
var price = parseInt(document.getElementById('hdn_price').value);

然后在更新代码中使用变量:

代码语言:javascript
复制
var seats = parseInt(document.getElementById('cmb_num_seat').value);

var childPrice = CHILD_SEAT_PRICE * seats;

var display = formatCurrency(cash + childPrice);

document.getElementById('disp_2_div').innerHTML = display;
document.getElementById('hdn_price').value = display;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3325265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档