将数组附加到无序列表

nna*_*ash 3 javascript arrays markup

我想用这段代码完成的是将数组alphabet作为一系列列表项输出到实际标记中的现有无序列表中.我已将数组放入列表项,但我无法弄清楚如何告诉它将自己附加到现有的无序列表中<ul id="itemList"></ul>.

var itemsExist = true;
var indexNum = 0;
var unorderedList = document.getElementById('itemList');
var alphabet= new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");

function write_letters(){

    for (i = 0; i < alphabet.length; i++ ) {
        document.write('<li>'  + alphabet[indexNum++] + '</li>');
    }

}

if (itemsExist){
    write_letters();
} else {
    document.write("error!");
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*ara 8

不要用document.write它来做.你应该这样做:

function write_letters(){
    var letters = "";

    for (var i = 0; i < alphabet.length; i++ ) {
        //Also I don't understand the purpose of the indexNum variable.
        //letters += "<li>"  + alphabet[indexNum++] + "</li>";
        letters += "<li>"  + alphabet[i] + "</li>";
    }

    document.getElementById("itemList").innerHTML = letters;
}
Run Code Online (Sandbox Code Playgroud)

更合适的方法是使用DOM(如果你想完全控制正在发生的事情):

function write_letters(){
    var items = document.getElementById("itemList");

    for (var i = 0; i < alphabet.length; i++ ) {
        var item = document.createElement("li");
        item.innerHTML = alphabet[i];
        items.appendChild(item);
    }

}
Run Code Online (Sandbox Code Playgroud)