JavaScript中的温度转换器(IF ELSE条件)

时间:2016-05-08 03:41:08

标签: javascript if-statement

我正在使用JavaScript创建温度转换器。到目前为止,当用户首先输入时,只有Celsius转换才有效。我只是弄清楚如何构造其他if语句。

  var conversionC;
  var conversionF;
  var conversionK;

  if ( celsius.value != "" ) {
     conversionF = document.getElementById("celsius").value * 9 / 5 + 32;
     document.getElementById("fahrenheit").value = Math.round(conversionF);
  } 

  else if ( fahrenheit.value != "" ){
     conversionC = (document.getElementById("fahrenheit").value - 32) * 5 / 9;
     document.getElementById("celsius").value = Math.round(conversionC);
  }

  if ( kelvin.value != "" ){
     conversionC = document.getElementById("celsius").value - -273;
     document.getElementById("kelvin").value = Math.round(conversionC);
  }

我只想保留我拥有的一个转换按钮,并且当用户决定先输入华氏度或开尔文时仍然可以使用它。

非常感谢任何指导!

到目前为止,这是我的程序的JSFiddle: https://jsfiddle.net/2sharkp/kw2sr1wx/

谢谢!

1 个答案:

答案 0 :(得分:0)

在你的JSFiddle中,你将获取每个值并将其转换为parseFloat的浮点数。

这意味着当您点击if ( celsius.value != "" )时,您正在呼叫.value一个号码undefined。因此,您确实在调用if ( undefined != "" ),这是真的,并且您的第一个if块将始终执行。

我假设您打算采用最近编辑过的字段并将其用于转换。我建议使用一个标志来指示上次编辑的字段。

https://jsfiddle.net/camEdwards/chyg4ws1/