繁体   English   中英

使用回调的递归Javascript函数不起作用

[英]Recursive Javascript function using callback not working

我正在尝试使用回调来解决我的递归函数JS的问题。 我只想根据索引更新3 div的HTML。 请在下面找到代码

<div id="try0">50</div>
<div id="try1">50</div>
<div id="try2">50</div>

function getNumberOfAnswers(questionID, callback)
{
  var value = i*10;
   callback( value.toString());

}

var i=0;
getNumberOfAnswers(i, function callFunc(ratio){
    var itemToChg = 'try'+i;
document.getElementById(itemToChg).innerHTML = ratio;
    if(i<3){
        i++;
        getNumberOfAnswers(i,callFunc(ratio));

    }

    });

为了简化起见,我没有在上面的代码上放置任何标签,但是我用它做了一个JSfiddle。 http://jsfiddle.net/cyrilGa/zmtQ8/ 在最后的第三行,我尝试编写getNumberOfAnswers(i,ratio);。 但这没用。 有人可以帮我加油吗

该行:

var value = i*10; 

应该

var value = questionID * 10;

我认为

getNumberOfAnswers(i,callFunc(i));

应该:

getNumberOfAnswers(i,callFunc);

不要为此使用递归,这很愚蠢。

for ( var i = 0; i < 3; i++ ) {
    document.getElementById('try' + i).innerHTML = i * 10;
}

这是你想要的吗?

您需要替换递归callFunc(ratio); 在底部callFunc(i); 因为当您增加i时参数ratio仍然等于0。 其他一切都很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM