如果javascript中的函数没有返回任何内容..为什么?

时间:2016-08-30 07:14:03

标签: javascript jquery web-developer-toolbar

<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作为数字输出时,代码工作正常,但是当我添加这个函数时它没有输出

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

5 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

变化:

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

为:

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

并且您也不需要一直使用'var'关键字,它仅用于声明。

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

检查一下:

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

  2. 如果您已经在上面声明了条件,则无需声明var。

  3. if(4&lt; z&lt; = 5)将始终返回true而不考虑z值,因此您应该使用逻辑运算符。

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

  5. CODEPEN

    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;
    }
    

答案 4 :(得分:-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);