0

我正在尝试使用回调来解决我的递归函数 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); 但它没有用。有人可以帮我解决这个问题吗

4

3 回答 3

2

该行:

var value = i*10; 

应该

var value = questionID * 10;

而且我认为

getNumberOfAnswers(i,callFunc(i));

应该:

getNumberOfAnswers(i,callFunc);
于 2012-06-26T12:03:49.880 回答
1

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

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

这是你想要的吗?

于 2012-06-26T11:51:22.613 回答
0

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

于 2012-06-26T11:36:14.360 回答