非常直接的我想做的事情:
0
,则表示他们没有输入数字
应该告诉你。7
时,应该说你做对了。但无论输入是什么,它只输出“7是正确的”线,我无法弄清楚出了什么问题。
<script type="text/javascript">
function problem2 ()
{
var number = 0;
var text=document.getElementById("output");
number = prompt("Enter a number between 1 and 10 please" , 0);
if (number = 0)
{
text.value = "You didn't enter a number!";
}
if (number = 7)
{
text.value = "7 is correct!";
}
else
{
text.value = "Sorry, ", input, "is not correct!";
}
}
</script>
<input type="button" value="Click here" onclick="problem2()">
<input id="output" type="text">
答案 0 :(得分:6)
您正在使用=
进行分配。使用==
或===
。
if( 0 == number ){
text.value = "You didn't enter a number!";
}
另外,要小心你的支具位置。 Javascript喜欢自动添加分号到行尾。 Source
答案 1 :(得分:2)
您使用赋值运算符作为条件而不是比较运算符:
if (number = 0) // falsy. Same as if (false)
{
text.value = "You didn't enter a number!";
}
if (number = 7) // truthy. Same as if (true)
{
text.value = "7 is correct!";
}
else
{
text.value = "Sorry, ", input, "is not correct!";
}
或者,您可以使用开关并更轻松地组织条件:
switch (number) {
case 0:
text.value = "You didn't enter a number!";
break;
case 7:
text.value = "7 is correct!";
break;
default:
text.value = "Sorry, ", input, "is not correct!";
break;
}
答案 2 :(得分:2)
以下是一些代码,其中包含一些修复和改进(我评论了我所做的更改):
function problem2 (){
//I multiplied by * 1 to work with numbers, also used || to default to 0 in case of NaN
var num = (prompt("Enter a number between 1 and 10 please" , 0) * 1) || 0;
var msg = "";
if (!num){ //I prefer this over 'num == 0'
msg = "You didn't enter a number!";
//you should use 'else if' in this case
}else if (num == 7){//'=' is for assignment, use '==' or '===' instead
msg = "7 is correct!";
}else{
//you had an undefined var 'input', you probably meant 'num'
//you also were connecting var and strings using commas, use '+' instead
msg = "Sorry, " + num + " is not correct!"; //added a space in ' is'
}
//no need to store the element in a var anymore :D
document.getElementById("output").value = msg;
}
另外,还可以进行两项更改:
var
(例如var something = "", somethingElse = 99;
)var msg = "default"
,然后移除else
注意:我做的一个未记录的更改是重命名一些变量,我鼓励大家停止使用像number, text, string
这样的变量,如果你有这个坏习惯,你最终会使用非法var错误的名字。