Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript中的温度转换器(如果有其他条件)_Javascript_If Statement - Fatal编程技术网

JavaScript中的温度转换器(如果有其他条件)

JavaScript中的温度转换器(如果有其他条件),javascript,if-statement,Javascript,If Statement,我正在用JavaScript创建一个温度转换器。到目前为止,只有当用户首先输入摄氏度时,摄氏度转换才起作用。我只是不知道如何构造其他if语句 var conversionC; var conversionF; var conversionK; if ( celsius.value != "" ) { conversionF = document.getElementById("celsius").value * 9 / 5 + 32; document.ge

我正在用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);
  }
我只想保留我拥有的一个转换按钮,当用户决定先输入华氏温度或开尔文时,它仍然可以工作

非常感谢您的指导

以下是迄今为止我的程序的一部分:


谢谢

在JSFIDLE中,使用
parseFloat
获取每个值并将其转换为浮点值

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

我假设您的目的是获取最近编辑的字段并将其用于转换。我建议使用标志来指示上次编辑的字段


在JSFIDLE中,使用
parseFloat
将每个值转换为浮点值

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

我假设您的目的是获取最近编辑的字段并将其用于转换。我建议使用标志来指示上次编辑的字段


一个问题是,第一个if条件
if(centicies.value!=”)
将始终为真,因为
centicies
变量包含一个数字,而数字没有
.value
属性,所以实际测试的是
if(undefined!=”)
。您需要测试
document.getElementById(“摄氏度”).value!=“”
。另一个问题是,您将所有输入都默认为
0
,因此测试它们是否为空字符串是没有意义的。(虽然您可能确实想让用户输入一个
0
,但我不确定如何仅使用一个转换按钮来处理该问题。)“if,else if,else if”系列没有问题。或者一个“if,else-if,else”。一个问题是第一个if条件
if(cercified.value!=”)
将始终为真,因为
cercifies
变量包含一个数字,而数字没有
.value
属性,所以实际测试的是
if(undefined!=”)
。您需要测试
document.getElementById(“摄氏度”).value!=“”
。另一个问题是,您将所有输入都默认为
0
,因此测试它们是否为空字符串是没有意义的。(虽然您可能确实想让用户输入一个
0
,但我不确定如何仅使用一个转换按钮来处理该问题。)“if,else if,else if”系列没有问题。或者一句“如果,如果,如果”,非常感谢!这正是我所需要的。我正在学习HTML、CSS和JS速成入门课程。我们上节课刚被介绍给JS。到目前为止,我对这件事处理得很好,只是在逻辑上挣扎。我真的很欣赏你的代码的可读性!非常感谢你!这正是我所需要的。我正在学习HTML、CSS和JS速成入门课程。我们上节课刚被介绍给JS。到目前为止,我对这件事处理得很好,只是在逻辑上挣扎。我真的很欣赏你的代码的可读性!