簡體   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