如果 javascript returns 什么都没有..为什么?
if function in javascript returns nothing..why?
<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>
所以这是我需要用来显示一些消息的小函数,具体取决于用户将在输入 window 中写入的输入值。当我只输出变量 z 作为数字时代码工作正常,但是当我添加这个 if 函数时它什么都不输出
有什么建议吗?
谢谢:)
变化:
document.getElementById("demo").innerHTML = + mess2;
至:
document.getElementById("demo").innerHTML += mess2;
而且你不需要一直使用'var'关键字,它仅用于声明。
检查此 fiddle:
https://jsfiddle.net/8cLegxbj/
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
这是因为你在if语句中声明了变量z。
在if语句之后声明一次就可以了
我做了一些更改,请在此处查看示例 - 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);
检查这个:
您正在通过一些输入 ID(根据我对您的代码的理解)访问 x 和 y 的值,因此无需作为函数参数传递。
无需在 if 条件中声明 var,因为您已经在上面声明了它。
if(4 < z <=5) 将始终 return true 而不管 z 值,因此您应该改用逻辑运算符。
添加了一个名为 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;
}
<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>
所以这是我需要用来显示一些消息的小函数,具体取决于用户将在输入 window 中写入的输入值。当我只输出变量 z 作为数字时代码工作正常,但是当我添加这个 if 函数时它什么都不输出
有什么建议吗? 谢谢:)
变化:
document.getElementById("demo").innerHTML = + mess2;
至:
document.getElementById("demo").innerHTML += mess2;
而且你不需要一直使用'var'关键字,它仅用于声明。
检查此 fiddle: https://jsfiddle.net/8cLegxbj/
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
这是因为你在if语句中声明了变量z。 在if语句之后声明一次就可以了
我做了一些更改,请在此处查看示例 - 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);
检查这个:
您正在通过一些输入 ID(根据我对您的代码的理解)访问 x 和 y 的值,因此无需作为函数参数传递。
无需在 if 条件中声明 var,因为您已经在上面声明了它。
if(4 < z <=5) 将始终 return true 而不管 z 值,因此您应该改用逻辑运算符。
添加了一个名为 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;
}