0
<p id="demo"></p>
<p id="demo2"></p>
<script>
function myFunction(x, y) {
    var mess2;
    var x = document.getElementById("id1").value;
    var y = document.getElementById("id2").value;
    var z = Math.abs(+ x) + Math.abs(+ y);
        if (var z <= 2.50) {
            mess2 = "message 1";
        } else if (2.50 < var z <= 4.00) {
            mess2 = "message 2";
        } else if (4.00 < var z <= 5.00) {
            mess2 = "message 3";
        } else {
            mess2 = "message 4";
        }
    document.getElementById("demo").innerHTML = + mess2;
    }
</script>

所以这是我的小功能,我需要根据用户在输入窗口中写入的输入值来显示一些消息。当我只输出变量 z 作为数字时,代码运行良好,但是当我添加这个 if 函数时,它什么也不输出

有什么建议吗?谢谢你 :)

4

5 回答 5

4
function myFunction() { // no arguments here, x and y are calculated inside function
    var mess2;
    var x = document.getElementById("id1").value;
    var y = document.getElementById("id2").value;
    var z = Math.abs(x) + Math.abs(y); // Calculate z based on x and y
    if (z <= 2.50) {          // is z <= 2.50 ?
        mess2 = "message 1";
    } else if (z <= 4.00) {   // is z <= 4.00 ? (we know it's z > 2.50)
        mess2 = "message 2";
    } else if (z <= 5.00) {   // is z <= 5.00 ? (we know it's z > 4.00)
        mess2 = "message 3";
    } else {
        mess2 = "message 4";  // is z > 5.00?
    }
    document.getElementById("demo").innerHTML = mess2; // Change html of "demo" to the message
}

看到这个JSFiddle

于 2016-08-30T07:16:47.537 回答
1

改变:

document.getElementById("demo").innerHTML = + mess2;

至:

document.getElementById("demo").innerHTML += mess2;

而且你不需要一直使用'var'关键字,它只用于声明。

检查这个小提琴: https ://jsfiddle.net/8cLegxbj/

于 2016-08-30T07:16:06.623 回答
1

这是因为您在 if 语句中声明了变量 z。在 if 语句之后声明一次,一切都会好的

于 2016-08-30T07:17:49.597 回答
1

检查这个:

  1. 您正在通过一些输入 ID(根据我对您的代码的理解)访问 x 和 y 的值,因此无需作为函数参数传递。

  2. 无需在 if 条件中声明 var,因为您已经在上面声明了它。

  3. if(4 < z <=5)将始终返回 true 而与 z 值无关,因此您应该改用逻辑运算符。

  4. 添加了一个调用 myFunction() 的按钮。

编解码器

function myFunction() {
  var mess2;
  var x = document.getElementById("id1").value;
  var y = document.getElementById("id2").value;

  var z = Math.abs(+x) + Math.abs(+y);
  if (z <= 2.50) {
    mess2 = "message 1";
  } else if (2.50 < z && z <= 4.00) {
    mess2 = "message 2";
  } else if (4.00 < z && z <= 5.00) {
    mess2 = "message 3";
  } else {
    mess2 = "message 4";
  }

  document.getElementById("demo").innerHTML = mess2;
}
于 2016-08-30T07:47:40.750 回答
-1

我做了一些更改,请在此处查看示例 - https://jsfiddle.net/ugoxr5m8/2/

<p id="demo">

</p>

function myFunction(x, y) {
  var mess2;
  //var x = document.getElementById("id1").value;
  //var y = document.getElementById("id2").value;
  var z = Math.abs(+x) + Math.abs(+y);

  if (z <= 2.50) {
    mess2 = "message 1";
  } else if (2.50 < z <= 4.00) {
    mess2 = "message 2";
  } else if (4.00 < z <= 5.00) {
    mess2 = "message 3";
  } else {
    mess2 = "message 4";
  }

  document.getElementById("demo").innerHTML = mess2;
}

myFunction(1, 2);
于 2016-08-30T07:29:28.877 回答