2016-11-02 29 views
0

創建一個HTML表我有對象的數組:從JSON

enter image description here

我有一個div:

<div class="col-lg-12" id="list-puntate"> 
    <!-- Insert my list here -->        
</div> 

JS

var listDiv = document.getElementById('list-puntate'); 
var ul = document.createElement('ul'); 
ul.appendChild(listDiv); 
for(var i = 0; i < data.list.length; ++i) { 
    var li = document.createElement('li'); 
    li.appendChild(data.list[i].puntata); 
    ul.appendChild(li);         
} 

我想有像這樣的結果:

<div class="col-lg-12" id="list-puntate"> 
    <ul> 
    <li>values of data.list[i].puntata</li> 
    <li>...</li> 
    </ul>        
</div> 
+0

'.appendChild()'增加了'Node'的元素。但'data.list [i] .puntata'(in'li.appendChild(data.list [i] .puntata);')不是'Node',而是一個字符串。您可以使用['.createTextNode()'](https://developer.mozilla.org/en-US/docs/Web/API/Document/createTextNode)將字符串轉換爲一個節點,然後可以使用' .appendChild()' – Andreas

回答

0

你應該做如下:

var listDiv = document.getElementById('list-puntate'); 
var ul=document.createElement('ul'); 
for (var i = 0; i < data.list.length; ++i) { 
     var li=document.createElement('li'); 
     li.innerHTML = data.list[i].puntata; // Use innerHTML to set the text 
     ul.appendChild(li);         
} 
listDiv.appendChild(ul); // Note here 
+0

是的,它工作正常,但我的數組json是我的數據庫的數據調用ajax,我每秒更新我的div「list-puntate」與我的數據庫中的列表,現在每秒我的列表10項變爲10,20,30,...等。完成「for」循環後,有一種方法可以清除list html嗎?謝謝! –

+0

要刪除所有'li',只需調用'ul.innerHTML ='''。 –

1

試試這個

var listDiv = document.getElementById('list-puntate'); 
var ul=document.createElement('ul'); 
listDiv.appendChild(ul); 
for (var i = 0; i < data.list.length; ++i) { 

    var li=document.createElement('li'); 
    var textnode = document.createTextNode(data.list[i].puntata);  
    li.appendChild(textnode); 
    ul.appendChild(li);         
}