-3

これが私のコードです:

function listDesserts (){
    var dessertList = ["pudding", "cake", "toffee", "ice cream", "fudge", "nutella"];

    var i = 0;
    while (i< dessertList.length){
        var ul = document.getElementById("thelist");
        var nli = document.createElement("li");
        var nliID = 'item-' +i;
        nli.setAttribute('id', nliID);
        nli.setAttribute('class', 'listitem');
        nli.innerHTML = dessertList[i];
        ul.appendChild(nli);
        i++;
    }
}

配列内の項目数に基づいて li タグ ID を設定しているので、必要に応じてゼロに設定します。むしろ、最初の配列メンバーをスキップせずに、1 で始まる ID を設定するように i を変更したいと考えています。いくつか試してみましたが、これがありません。誰か?

4

2 に答える 2

3

配列を反復処理しているため、カウンター変数は常にから0まで実行する必要がありますlength-1。他の解決策も可能でしたが、直感に反します。

その配列に1から始まる番号がいくつかある場合は、i+1必要な場所で使用してください。あなたの場合'item-'+(i+1)

ところで、の代わりにfor-loopを使用することもできますwhile

于 2012-12-09T23:36:48.320 に答える
1

使用 var i = 1;

i-1現在お持ちの場所で使用してくださいi

var i = 1;
while (i< dessertList.length-1){
    var ul = document.getElementById("thelist");
    var nli = document.createElement("li");
    var nliID = 'item-' + (i-1);    //<----- here
    nli.setAttribute('id', nliID);
    nli.setAttribute('class', 'listitem');
    nli.innerHTML = dessertList[i-1];    //<----- and here
    ul.appendChild(nli);
    i++;
}
于 2012-12-09T23:30:51.190 に答える