-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,因此我将其设置为零。相反,我想修改 i 以便它设置以 1 开头的 ID,而不会跳过第一个数组成员。我已经尝试了一些东西,但我错过了这个。有人吗?

4

2 回答 2

3

在迭代数组时,计数器变量应始终从0to运行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 回答