JS "If & else" 没有正确响应

JS "If & else" does not respond properly

我正在尝试制作一个网站,该网站将根据变量 "d" 显示各种句子。 计划是如果 "d" 恰好为 0,则显示第一行,并且 d 的值将显示在 class 为 "text" 的段落中。

This is the code

    <!doctype HTML>
<html>

<head>
  <link href="main.css" rel="stylesheet" />
  <meta charset="utf-8">
  <link href="https://fonts.googleapis.com/css?family=Ubuntu" rel="stylesheet">
</head>

<body class="Ubuntu">
<nav>
  <div>
    <h1>Beregn antal diskriminanter</h1>
  </div>
</nav>

<div align="center" class="main_container">
  <table>
    <form method="POST" name="diskriminant" action="diskriminant.html">
  <tr>
    <td>
      <p> Indtast a </p>
    </td>
    <td>
      <input type="number" name="numA" size="6" class="input-form"/></p>
    </td>
  </tr>

  <tr>
    <td>
      <p> Indtast b </p>
    </td>
    <td>
      <input type="number" name="numB" size="6" class="input-form"/></p>
    </td>
  </tr>
  <tr>
    <td>
      <p> Indtast c </p>
    </td>
    <td>
        <input type="number" name="numC" size="6" class="input-form"/></p>
    </td>
  </tr>
  <tr>
    <td colspan="2" align="center">
            <p><input type="button"  name="knap" value="Beregn" onkeydown="enter()" onclick="beregner()"class="button Ubuntu"/></p>
    </td>
  </tr>
  <tr>
    <td colspan="2" align="center">
            <p id="text" class="align"></p> <br> <p id="result" class="align"></p>
    </td>
  </tr>
    </form>
  </table>
</div>
<footer>
</footer>
<script>
    function beregner() {
        var a;
        var b;
        var c;
        var d;
        var res;

        a=document.diskriminant.numA.value;
        b=document.diskriminant.numB.value;
        c=document.diskriminant.numC.value;

        d=Math.pow(( +b),2)-4*a*c;


        if (d = 0) {
          res = "Der er ingen nulpunkter";
        }
        else if (d < 0) {
            res ="Der er et nulpunkt";
          }
        else {
            res ="Der er to nulpunkter";
          }


          document.getElementById('text').innerHTML=+d;
          document.getElementById('result').innerHTML=res;


    }
</script>

</body>
</html>

d = 0d == 0不一样。这是你的问题,你在这里给变量赋值。
变量赋值总是 returns true.

使用 JavaScript 中的 == 运算符计算比较。只需更改您的 if-statement:

if (d == 0) {
    res = "Der er ingen nulpunkter";
}

d = 0 正在分配一个变量。尝试 if (d === 0)

为了安全起见,请始终使用“===”运算符,因为它会同时检查类型和值。这样你就会真正知道两个东西是否相等。