我知道这可能是一个蹩脚的问题,但我不知道如何从循环内部的函数中获取值。 你们可以对我应该做些什么进行一些说明吗?
代码看起来像这样:
function radioCreator(){
//creates radio button
}
function main(){
for (i = 0; i < nQ; i++) {
radioCreator("answerOption", "answer" + (i + 1));
for (j = 0; j < nA; j++) {
//here I got some more code
function finished(){
for (i = 0; i < nQ; i++) {
for (j = 0; j < nA; j++) {
if (document.getElementsByName("answer"+ (i + 1))[j].checked.value == true){
goodAnswers ++;
console.log(goodAnswers);
} else {
console.log("No good answers");
}
}
}
}
}
}
}
function getAnswers(){
finished();
console.log(goodAnswers);
}
我想要做的是点击按钮后我想执行 getAnswers()功能, 但它说:
Uncaught ReferenceError: finished is not defined
我得到但我想知道:我想得到goodAnswers变量值,如何从循环外执行funcion finished()?
答案 0 :(得分:0)
尝试添加this.finished = finished
以使finished()
成为公共方法
答案 1 :(得分:0)
只需将方法移出循环,然后将指针传递给函数。
答案 2 :(得分:0)
在main
函数中使用一些返回对象
像这样调用finished
函数,如main().finished()
function radioCreator() {
//creates radio button
}
function main() {
for (i = 0; i < nQ; i++) {
radioCreator("answerOption", "answer" + (i + 1));
for (j = 0; j < nA; j++) {
//here I got some more code
return {
finished : function() {
for (i = 0; i < nQ; i++) {
for (j = 0; j < nA; j++) {
if (document.getElementsByName("answer" + (i + 1))[j].checked.value == true) {
goodAnswers++;
console.log(goodAnswers);
} else {
console.log("No good answers");
}
}
}
}
}
}
}
}
function getAnswers() {
main().finished();
console.log(goodAnswers);
}