如何调用循环内部的函数并且必须保持在那里

时间:2017-05-03 11:53:18

标签: javascript

我知道这可能是一个蹩脚的问题,但我不知道如何从循环内部的函数中获取值。 你们可以对我应该做些什么进行一些说明吗?

代码看起来像这样:

  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()

3 个答案:

答案 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);
}