我正在尝试将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>
答案 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
。 ===
测试相等并返回true
或false
; =
是赋值运算符,意味着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>