2012-04-24 112 views
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); 
       } 

這是否有意義?出於某種原因,我看不到任何東西 - 儘管條目[i] .name DOES返回值,如果我用警報框進行調試。添加列表項到DOM?

編輯:localFiles是UL

+1

什麼項目? – j08691 2012-04-24 18:49:07

+1

提供完整的repro ... – xandercoded 2012-04-24 18:49:30

+0

它是一個數組,其中的某些文件對象的名稱屬性以字符串形式返回文件名 - 它在警告框內正常工作。 – antonpug 2012-04-24 18:49:58

回答

1

代替:

newList.nodeValue = entries[i].name; 

嘗試:

newList.innerHTML = entries[i].name; 
1

,你可以簡單地說:DOM操作

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

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

localPlaceholder.innerHTML += newList; 

少的情況。

編輯:考慮http://jsfiddle.net/matthewbj/ZyU8h/

0

文字直接使用方法的nodeValue到HTML元素,除非它是一個文本節點(LI不是一個文本節點)不能添加。您需要創建一個文本節點,然後將其添加到html元素,否則,只需使用innerHTML即可。

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

您可以嘗試改變

newList.nodeValue = entries[i].name; 

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