-2

我从选择框 1) 高度和 2) 宽度更改函数中得到两个值,我必须乘以高度 + 宽度 * 2 = 价格,在此计算之后我必须提醒价格。

    var height =0 ; 
    var width =0 ;
    var price=0;
    $("#Heightproduct").change(function() { 
   h = $(this).val(); 
              var height = parseInt(h);
                price = height + width * 2;
                   alert(price);
                    });
                    $("#Widthproduct").change(function() { 
               w = $(this).val();
             var width = parseInt(w);
             price = height + width * 2;
                 alert(price);
                 });

这是没有输出的屏幕截图。这里我选择了 height=25 width=25 并且我在警报 50 中得到输出,这是错误的,我想要的答案应该是 100 我的代码的最终输出

4

4 回答 4

3

尝试

  price = (height + width) * 2;

由于优先级计算错误。

文档:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

运算符优先级决定了运算符的计算顺序。首先评估优先级较高的运算符。

一个常见的例子:

3 + 4 * 5 // returns 23  
于 2013-09-21T07:24:09.983 回答
2

你应该像下面那样做。避免在事件varwidth和事件内。heightchange

也使其成为(height + width) * 2运算符优先级。

演示小提琴

var height = 0;
var width = 0;
var price = 0;
$("#Heightproduct").change(function () {
    h = $(this).val();
    height = parseInt(h); //Note the change here
    price = (height + width) * 2;
    alert(price);
});
$("#Widthproduct").change(function () {
    w = $(this).val();
    width = parseInt(w); //Note the change here
    price = (height + width) * 2;
    alert(price);
});
于 2013-09-21T07:34:23.403 回答
0

简单地

price = (height + width) * 2;
于 2013-09-21T07:24:59.717 回答
0

尝试

var height = 0 ; 
var width = 0 ;
var price= 0;
$("#Heightproduct").change(function() { 
    h = $(this).val(); 
    var height = parseInt(h);
    price = (height + width) * 2;
    alert(price);
}).change();
$("#Widthproduct").change(function() { 
    w = $(this).val();
    var width = parseInt(w);
    price = (height + width) * 2;
    alert(price);
}).change();
于 2013-09-21T07:25:31.127 回答