0

コールバックを使用して再帰関数JSの問題を修正しようとしています。インデックスに従って使用して3divの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/。最後から3行目に、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

をインクリメントしている間、引数はまだ0に等しいためcallFunc(ratio);、下部の再帰をに置き換える必要があります。他のすべては大丈夫です。callFunc(i);ratioi

于 2012-06-26T11:36:14.360 に答える