Javascript运行通过所有if语句,无论条件如何
问题描述:
EDIT3:我现在已经完成了大部分工作,但是当我尝试通过它时遇到了错误。会发生什么,它会评估每条if语句,而不管它是否被正确比较。我试图避免使用字符串来使用它 - 但是当我将g,n,b移动到int时:它根本不起作用。Javascript运行通过所有if语句,无论条件如何
<input type='button' class='button' value='Option 1' style="left: 100px" onclick = "choice(g);" />
<input type='button' class='button' value='Option 2' style="center" onclick = "choice(n);" />
<input type='button' class='button' value='Option 3' style="right: 100px" onclick = "choice(b);" />
有我的按钮。 这里是我的功能:
var g, n, b;
var KarmaScore = 0; //tracks quality of your decisions
var QuestionNumber = 1; //tracks when final question, or "Important" decisions are made.
var end = 0; //Will be the value of your decision when you make a choice.
function choice(move) {
//tracks the current question
var playermove;
playermove = move;
if (playermove == g) {
alert("Good works");
KarmaScore++;
end = 1;
}
if (playermove == n) {
if (KarmaScore>0) {
alert("N + works");
KarmaScore--;
end = 0;
} else {
alert("N - works");
KarmaScore++;
end = 0;
}
}
if (move == b) {
alert("B works");
KarmaScore--;
end = 2;
}
QuestionNumber++;
playermove = 0;
q.src = "q"+QuestionNumber+".jpg";
alert(KarmaScore)
} 帮助表示赞赏。 :)
答
您错过了关闭NeutralChoice()功能与}之后的其他。
答
您需要初始化变量KarmaScore
,并且缺少函数NeutralChoice()
的大括号。
var KarmaScore = 0;
function GoodChoice() {
alert("Good works");
KarmaScore++;
QuestionNumber++;
Question();
end = 1;
}
function NeutralChoice() {
if (KarmaScore > 0) {
alert("N + works");
KarmaScore--;
QuestionNumber++;
Question();
end = 0;
} else {
alert("N - works");
KarmaScore++;
QuestionNumber++;
Question();
end = 0;
}
}
function BadChoice() {
alert("B works");
KarmaScore--;
QuestionNumber++;
Question();
end = 2;
}
<input type='button' class='button' value='Option 1' style="left: 100px" onclick="GoodChoice();" />
<input type='button' class='button' value='Option 2' style="center" onclick="NeutralChoice();" />
<input type='button' class='button' value='Option 3' style="right: 100px" onclick="BadChoice();" />
+0
它只是代码的一部分。 KarmaScore初始化。 我加了一个小提琴 – 2014-12-04 12:11:29
+0
@GarrettC。 - 那么你应该在你的代码中包含它。 – 2014-12-04 12:12:24
看在浏览器的错误控制台看到错误消息。并缩进您的代码,以便更轻松地看到不匹配的括号。 – JJJ 2014-12-04 11:21:31
我感觉很蠢,它说我的功能没有定义 - 但我无法弄清楚什么或在哪里声明它。 – 2014-12-04 12:53:49
小提琴说“作业中的左手边无效”,与功能无关。你需要在'='(赋值)和'=='(比较)之间做出区别。另请参阅http://stackoverflow.com/questions/5431351/simple-example-doesnt-work-on-jsfiddle – JJJ 2014-12-04 12:55:11