【发布时间】:2016-05-08 03:41:08
【问题描述】:
我正在用 JavaScript 创建一个温度转换器。到目前为止,当用户首先输入时,只有摄氏转换起作用。我只是无法弄清楚如何构造其他 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/
谢谢!
【问题讨论】:
-
一个问题是第一个 if 条件
if ( celsius.value != "" )将始终为真,因为您的celsius变量包含一个数字,而数字没有.value属性所以你重新实际测试是if(undefined != "")。你需要测试是否document.getElementById("celsius").value != ""。另一个问题是您将所有输入默认为0,因此测试它们是否为空字符串并没有多大意义。 (虽然您可能确实想让用户输入0,所以我不确定您如何仅使用一个转换按钮来处理它。) -
“if, else if, else if”系列没有错。或“如果,如果,如果,否则”。