根据y获取x的值

时间:2017-10-06 01:28:24

标签: javascript html function var

我正在尝试将x设置为某个值,具体取决于用户输入的内容。 用户可以输入y值,但我的功能是不打印x。 有人有任何想法吗?我找不到任何东西。

var y = 12;
var x = paymentfrequency()

function paymentfrequency() {
  if (y = year) {
    x = 1;
  }
  if (y = quarter) {
    x = 4;
  }
  if (y = month) {
    x = 12;
  }
  if (y = fortnight) {
    x = 26;
  }
  if (y = week) {
    x = 52;
  }
  return x = 0
}

document.getElementById("output").innerText = x;
<b>The text is: </b><span id="output"> </span>

3 个答案:

答案 0 :(得分:0)

试试这个(假设已经定义了年,季,月,星期和星期):

<!DOCTYPE html>
<html>
<body>

<b>The text is: </b><span id="output"> </span>

<script>

 var y = 12;
  var x = paymentfrequency()

  function paymentfrequency() {
    var out;
    if (y == year) { out = 1;
    } if (y == quarter) {out = 4;
    } if (y == month) {out = 12;
    } if (y == fortnight) {out = 26;
    } if (y == week) {out = 52;
    } return(out);
  }

document.getElementById("output").innerText = x;

</script>
</body>
</html>

答案 1 :(得分:0)

至少,您应该在===语句中使用=而不是if===测试相等并返回truefalse; =是赋值运算符,意味着y在第一个year语句中设置为if

同样,该函数返回x = 0,无论您在此之前运行什么代码,都会将x设置为0。在每个x语句中返回if,以便不会始终达到最终return,或者在开头设置x等于0,然后无论最后怎么回事。 (如果其他x语句都不成立,则假设您希望0设置为if。)

我建议修复这两个错误,如果输出仍无法正常显示,请创建一个新问题。希望这会有所帮助。

答案 2 :(得分:0)

您有几个问题=设置值==比较一个值,松散地===严格比较一个值(类型必须相同)。有关=====之间差异的文章很多。

接下来你总是回归x=0,这实际上没有任何意义。

继续...评估每个if语句。您最好使用if.elseif..else语句,或者更好switch

最后,最好不要尝试使用函数外的变量,最好将其作为参数传递。

所以你得到的一切

<!DOCTYPE html>
<html>
<body>

<b>The text is: </b><span id="output"> </span>

<script>

 var y = 12;
  var x = paymentfrequency(y)

  function paymentfrequency(input) {
    var out;
    //Assuming year, month, quater etc are global variables set else where
    switch(input) 
    {
       case year:
          out = 1;
          break;
       case quarter:
          out = 4;
          break;
       case month:
          out = 12;
          break;
       case  fortnight:
          out = 26;
          break;
       case week:
          out = 52;
          break;
       default:
          out = 0;
          break;
    } 

    return(out);
  }

document.getElementById("output").innerText = x;

</script>
</body>
</html>