将列表项添加到DOM?

时间:2012-04-24 18:47:23

标签: javascript dom

var localPlaceholder = document.getElementById('localFiles');
                for (i=0; i<entries.length; i++) {
                        var newList = document.createElement( "li" );
                        newList.nodeValue = entries[i].name;
                        localPlacholder.appendChild(newList);
                }

这有什么意义吗?由于某种原因,我没有看到任何添加 - 虽然条目[i] .name DOES返回值,如果我用警告框调试它。

编辑:localFiles是ul

3 个答案:

答案 0 :(得分:1)

而不是:

newList.nodeValue = entries[i].name;

尝试:

newList.innerHTML = entries[i].name;

答案 1 :(得分:1)

你可以简单地说:

var localPlaceholder = document.getElementById('localFiles');
var newList = '';

for (i = 0; i < entries.length; i++) {
    newList += '<li>' + entries[i].name + '</li>';
}

localPlaceholder.innerHTML += newList;

较少的DOM操作实例。

编辑:考虑http://jsfiddle.net/matthewbj/ZyU8h/

答案 2 :(得分:0)

除非是文本节点(LI不是文本节点),否则无法使用方法nodeValue直接向html元素添加文本。您需要创建一个文本节点,然后将其添加到html元素中,否则,只需使用innerHTML即可。

http://reference.sitepoint.com/javascript/Node/nodeValue

您可以尝试更改

newList.nodeValue = entries[i].name;

newList.appendChild(document.createTextNode(entries[i].name);