我正在为一些朋友建立一个笑话网站,网站上有一页我想要一些互动游戏。我已经习惯了C ++,所以过渡到javascript是一个有趣的过程。 我现在在页面上的所有内容都是段落元素,文本输入框和按钮。单击该按钮时,应该调用playGame()函数。 playGame函数查看段落元素(“游戏”)中的内容,然后查看用户输入并生成适当的结果。我只是使用一组条件来完成这个,但由于某种原因,该函数似乎没有改变段落元素,从而使整个事情变成了一个哑剧,经历了一些修改但我无法修复问题。这是代码:
<html>
<script>
function playGame()
{
test=document.getElementById("game");
var userInput=gameInput=document.getElementById("gameInput").value;
if (test.innerHTML=="Question_1")
{
if (userInput.toLowerCase()=="yes")
{
test.innerHTML="Ending_Result_1";
}
else if (userInput.toLowerCase()=="no")
{
test.innerHTML="Question_2";
}
else
{
test.innerHTML="Ending_Result_2";
}
}
else if (test.innerHTML=="Question_2")
{
if (userInput.toLowerCase()=="yes")
{
test.innerHTML="Positive_Ending";
}
else if (userInput.toLowerCase()=="no")
{
test.innerHTML="Ending_Result_3";
}
else
{
test.innerHTML="Ending_Result_4";
}
else
{
test.innerHTML="Refresh_page_message";
}
}
</script>
<head>
<title>CptTuna's Whip or No Whip</title>
</head>
<body>
<p id="game">"Question_1"</p>
<input id="gameInput" type="text">
<button type="button" onclick="playGame()">Answer</button>
</html>
为了适当,我只是将实际的文本内容更改为通用短语。任何有关函数未正确执行的帮助都将非常感激。
答案 0 :(得分:2)
选择一个:
""
),
或者...... 'Question_1' != '"Question_1"'
请注意,您可以使用单引号和双引号的组合来避免转义
答案 1 :(得分:0)
您的代码中只有一些小的语法错误。这对我有用:
function playGame() {
test=document.getElementById("game");
var userInput=gameInput=document.getElementById("gameInput").value;
if (test.innerHTML=="\"Question_1\"") {
if (userInput.toLowerCase()=="yes") {
test.innerHTML="Ending_Result_1";
} else if (userInput.toLowerCase()=="no") {
test.innerHTML="\"Question_2\"";
} else {
test.innerHTML="Ending_Result_2";
}
} else if (test.innerHTML=="\"Question_2\"") {
if (userInput.toLowerCase()=="yes") {
test.innerHTML="Positive_Ending";
} else if (userInput.toLowerCase()=="no") {
test.innerHTML="Ending_Result_3";
} else {
test.innerHTML="Ending_Result_4";
}
} else {
test.innerHTML="Refresh_page_message";
}
}
我冒昧地重新格式化代码以更好地适应我的风格(不是暗示你的问题存在问题,而是能够看到你忽略了括号的位置)。基本上,您没有关闭一个条件语句,也没有在最后一个else
之前关闭整个内部块。在调试器中发生错误'playGame未定义'。
另一点,但不是为什么代码不能编译,是因为你没有在你的条件中包含"
引号作为字符串文字,它是你的innerHTML内容的一部分。您的比较必须如下所示:test.innerHTML=="\"Question_1\""
其中\
'反斜杠'将单个下一个字符标记为编译器的字符串文字。