嵌套 if - JavaScript

Posted

技术标签:

【中文标题】嵌套 if - JavaScript【英文标题】:Nested if - JavaScript 【发布时间】:2015-09-04 11:13:41 【问题描述】:

我希望代码读取 Bz 的输入值,并在等式的答案中打招呼。这就是我到目前为止所拥有的。它不是在计算后给予“问候”。帮忙?

  <html>
  <body>

<form id="function" onsubmit="return false" oninput="o.value = 3.21 + (9.63 * parseInt(Bz.valueAsNumber))">
    3.21+(9.63 *<input name="Bz" type="number" step="any">) =
   <output name="o" for="intial set Bz">0</output>&nbsp;nT

</form>

<div id="mys1"></div>

<script language="javascript">   
 function myMath() 
 
    var Bz;
    var greeting; 
    if(Bz>-50)
    
         if (Bz>-30)
         
               greeting = "None"; 
         
         else  
         
               greeting = "Small ";
         
         else 
          
               if (Bz> -80) 
               
                     greeting = "Mild ";
               
               else 
               
                     greeting = "Large ";
               
          
     
 document.getElementById("mys1").innerHTML= greeting;
 ;  
</script>

</body>
</html>

【问题讨论】:

JS中没有else..else构造,应该是if..else..if..else... @Teemu 有两个 if 语句。缩进都搞砸了。 您遇到语法错误,缺少第一个(外部)if 块的结束 。请在发布前检查您的错误控制台,并修复您的缩进。 @BilltheLizard 是的,但是代码中有两个连续的 else 块。 @Teemu 啊,是的,你是对的。我认为他也缺少 【参考方案1】:

我发现了你的问题。未加载 Bz 值。设置输入name 属性不会将值存储到变量中。该属性用于表单提交。

你应该做的是:

function myMath() 
 
    var Bz = $("input[name='Bz']").val();
    ...
    ...
    ...
 

【讨论】:

'$' 是 jquery。我的脚本中没有那个。没有jquery还有其他方法吗? 那么,由于某种原因,您不能使用 JQuery 吗? Here 您可以找到如何在没有 JQuery 的情况下定位所需的输入。如果你可以给它分配一个ID,那就是var Bz = document.getElementById("your_input_id").value; 知道了!感谢您的帮助。【参考方案2】:

你从哪里调用你的函数myMath()?我猜它没有被解雇。

另外,你写ifs 声明的方式也很丑陋。这样会好很多:

if(Bz>-30)

    greeting = "Small";

else if(Bz>-50)

    greeting = "Mid ";

else if(Bz>-80)

    greeting = "Large";

else

    greeting = "None";

请注意,我写这篇文章是为了猜测您真正想要的问候信息。请注意,如果满足第一个条件,则根本不会检查其他条件。

【讨论】:

我忘了等式后面的一行代码: 好的,那么问题是你的if 是错误的。如果你向我解释你想要什么问候,在这种情况下,我会为你写 ifs。另外,您的控制台中是否有任何错误?如果有,您也应该将它们添加到您的帖子中 在我将其从最初的格式中取出后,没有显示任何错误。对于 Bz > -80,我希望它迎接大型。对于 Bz > -50,轻度。 Bz > -30,小。假设分析输入并确定最适合的范围。 @maebee_me 好的,我已经修复了答案中的代码。请检查一下。如果该值是任何大于 -30 的值,则问候语很小。如果它介于 -50 和 -30 之间,则该值为中值。如果它介于 -80 和 -50 之间,则为大。如果它小于 -80(因为它不适合任何其他情况),那么问候语是“无”。我希望这对你有帮助,如果你仍然无法做到,请告诉我。 不管数字是多少,唯一显示的是“无”。

以上是关于嵌套 if - JavaScript的主要内容,如果未能解决你的问题,请参考以下文章

js中if嵌套问题 请叫高手

如何优化这段if else多层嵌套?

C语言中三个if语句的嵌套怎理解

if函数多层嵌套应该怎样操作?

关于T-SQL的多重IF-ELSE嵌套

JSTL 中c:forEach 嵌套c:if