1
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);
                }

这有道理吗?出于某种原因,我没有看到任何添加的内容 - 尽管 entries[i].name 如果我使用警报框调试它会返回值。

编辑:localFiles 是一个 ul

4

3 回答 3

2

你可以简单地:

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/

于 2012-04-24T18:56:05.787 回答
1

代替:

newList.nodeValue = entries[i].name;

尝试:

newList.innerHTML = entries[i].name;
于 2012-04-24T18:50:36.390 回答
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);
于 2012-04-24T19:07:09.023 回答