如何创建一个对 Javascript 中先前函数生成的内容作出反应的函数
Posted
技术标签:
【中文标题】如何创建一个对 Javascript 中先前函数生成的内容作出反应的函数【英文标题】:How to create a function that reacts to what a previous function generated in Javascript 【发布时间】:2020-06-29 02:13:32 【问题描述】: 我创建了两个函数(F1
和 F2
)
F1
创建一个随机答案
F2
应该对生成的答案F1
提供反馈 (if(antw == ant
)
我的问题是如何让F2
使用随机答案F1
生成,所以反馈是正确的?
var operators = ['+','-'];
function F1()
Z1 = document.getElementById("Z1");
Z2 = document.getElementById("Z2");
oper=document.getElementById("operator");
answer=document.getElementById("answer");
rZ1 = Math.floor((Math.random()*10));
rZ2 = Math.floor((Math.random()*10)+1);
op = operators[Math.floor(Math.random()*2)];
Z1.innerhtml=rZ1;
Z2.innerHTML=rZ2;
oper.innerHTML=op;
answer.innerHTML = eval(rZ1 + op + rZ2);
document.getElementById("button2").addEventListener("click", F2);
function F2()
antw = parseInt(document.getElementById("userAnswer").value, 10);
feedBack = document.getElementById("feedBack");
ant = document.getElementById("answer");
if(antw == ant)
feedBack.textContent = "right";
else
feedBack.textContent = "wrong";
;
<button onclick="F1()"> New </button>
<p>
<label id="Z1"> </label>
<label id="operator"> </label>
<label id="Z2"> </label>
= <input id = "userAnswer" type=text>
<button id = "button2" >answer</button>
</p>
<p id = "feedBack"> </p>
<p><label id="answer"> </label></p>
【问题讨论】:
【参考方案1】:您可以在函数 F1 的末尾调用 F2,并将答案作为参数传递给 F2。
function F2(answer)
//logic to check answer
return feedback
function F1()
//logic to calculate answer
F2(answer)
您可以使用您的原始代码,只需要修复代码中的一个小问题。您忘记使用 textContent 从您的 html 中获取值,因此您将未定义的值与您的答案进行比较
ant = document.getElementById("answer").textContent;
【讨论】:
我现在试过了,但反馈仍然是“错误的”,即使它应该回答“正确”。 @colin 你可以直接在给定的代码中编辑它,这样我就可以更好地理解你的意思。以上是关于如何创建一个对 Javascript 中先前函数生成的内容作出反应的函数的主要内容,如果未能解决你的问题,请参考以下文章
如何形象地解释 JavaScript 中 map,foreach,reduce 间的区别