javascript - 为什么我不能添加文本并删除它?
问题描述
我对编程很陌生,所以如果我不理解你的解释或者这是一些常识问题,请多多包涵。
我正在开始一门 JavaScript/HTML/CSS 课程,并决定对屏幕上显示的一行代码进行自己的尝试。我想我理解了大致的想法,但我不知道为什么我输入的内容不起作用:
我的目标是,如果他们得到正确的答案,就会有一个绿色的 OK,如果他们得到错误的答案,就会有一个红色的。我不希望它们立即出现,所以我输入了一行,如果你得到了正确的 p 标签,我会清除错误的标签,反之亦然。出于某种原因,当您输入错误的答案时,不会出现绿色的 Ok。其他一切都有效(据我所见),如果你弄错了,红色的 Ok 会出现,如果你做对了,它就会被删除。问题与绿色确定有关。
我该怎么办,更重要的是,为什么会发生这种情况?
我还请询问您是否要给出一个解决方案,不要让它变得过于复杂,因为我不明白。我提醒你们我是初学者。
<script>
function reply()
{
var answer = document.getElementById("questionPrompt").value;
if (answer == "Ok")
{
document.getElementById("rightResponse").innerHTML = "Ok";
document.getElementById("wrongResponse").innerHTML = "";
}
else
document.getElementById("wrongResponse").innerHTML = "Ok";
document.getElementById("rightResponse").innerHTML = "";
}
</script>
<input id="questionPrompt"></input>
<p id="rightResponse" style="color:green;"></p>
<p id="wrongResponse" style="color:red;"></p>
<button onclick="reply();">Click</button>
解决方案
你的 else 后面没有大括号,所以编译器会查看你的 if else 就像它一样
if (answer == "Ok") {
document.getElementById("rightResponse").innerHTML = "Ok";
document.getElementById("wrongResponse").innerHTML = "";
} else {
document.getElementById("wrongResponse").innerHTML = "Ok";
}
document.getElementById("rightResponse").innerHTML = "";
由于没有大括号,只有直接在 else 语句之后的行被视为 else 的一部分。所以,不管是什么answer
,"rightResponse"
p 标签总是设置为空白。要修复它,您只需为 else 添加大括号,以便编译器知道在 else 之后包含两行代码作为 else 的一部分,如下面的代码片段所示。
<script>
function reply() {
var answer = document.getElementById("questionPrompt").value;
if (answer == "Ok") {
document.getElementById("rightResponse").innerHTML = "Ok";
document.getElementById("wrongResponse").innerHTML = "";
} else {
document.getElementById("wrongResponse").innerHTML = "Ok";
document.getElementById("rightResponse").innerHTML = "";
}
}
</script>
<input id="questionPrompt"></input>
<p id="rightResponse" style="color:green;"></p>
<p id="wrongResponse" style="color:red;"></p>
<button onclick="reply();">Click</button>
推荐阅读
- android - 使用 Compressor 库时发生 java.lang.NullPointerException
- winapi - 如何用 CreateProcess() 模拟 ShellExecute()
- flutter - 如何更新颤动警报框中的按钮文本
- python - 为什么每次加载并继续训练 ConvNet 后准确率都会下降?
- java - 为什么这段代码不能在 android 9 上正确运行?
- javascript - AngularJS 应用程序:如何从视图中获取日期并在控制器中使用它?
- swift - 无法将整个双向链表元素打印到控制台
- c - 如何通过将原始数组传递给c中的函数来修改原始数组
- java - JavaFX - 主控制器调用子控制器的函数导致空指针异常
- python - 如何使用循环当前引用的位置更新变量?