I have an array of objects:
I have a 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);
}
I would like to have a result like this:
<div class="col-lg-12" id="list-puntate">
<ul>
<li>values of data.list[i].puntata</li>
<li>...</li>
</ul>
</div>
I have an array of objects:
I have a 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);
}
I would like to have a result like this:
<div class="col-lg-12" id="list-puntate">
<ul>
<li>values of data.list[i].puntata</li>
<li>...</li>
</ul>
</div>
Share
Improve this question
edited Nov 2, 2016 at 13:12
Nhan
3,9056 gold badges34 silver badges40 bronze badges
asked Nov 2, 2016 at 11:27
Diego CespedesDiego Cespedes
1,3534 gold badges26 silver badges50 bronze badges
1
-
.appendChild()
adds aNode
to an element. Butdata.list[i].puntata
(inli.appendChild(data.list[i].puntata);
) isn't aNode
but a string. You could use.createTextNode()
to convert the string to a Node which can then be added with.appendChild()
– Andreas Commented Nov 2, 2016 at 11:36
2 Answers
Reset to default 2You should do as follows:
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
Try this
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);
}