这是我的代码:
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而不跳过第一个数组成员。我尝试过一些东西,但我想念它。任何人
答案 0 :(得分:2)
在迭代数组时,计数器变量应始终从0
运行到length-1
。其他解决方案是可行的,但是反直觉。
如果您在该阵列中有一些基于单一的编号,只需在您需要的地方使用i+1
;在您的情况下'item-'+(i+1)
。
顺便说一下,您可以使用for
-loop代替while
。
答案 1 :(得分: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++;
}