Reputation: 216
I am very new to JavaScript. I am trying to insert someObject data to my table using Javascript. But unfortunately, my code is not working. I am unclear where I am going wrong. Please find my code below. Any help will be really helpful for me.
function myFunction(){
var data = '{ "name":"John", "age":30, "city":"New York"}'
var obj = JSON.parse(data);
var toSHow = document.getElementById("datum");//my table ID is datum
var empData = "";
for(var i=0; i<obj.length; i++)
empData += '<tr>';
empData += '<td>'+data.name+'</td>';
empData += '<td>'+data.age+'</td>';
empData += '<td>'+data.city+'</td>';
empData += '</tr>';
}
}
toSHow.append(empData);
</script>
Upvotes: 0
Views: 49
Reputation: 2572
I have adjusted your code a bit and commented on it:
function myFunction(){
var data = '[{"name":"John", "age":30, "city":"New York"}, {"name":"Doe", "age":25, "city":"LA"}]' // Converted to array and added second element for example
var obj = JSON.parse(data);
var toSHow = document.getElementById("datum");//my table ID is datum
for(var i=0; i < obj.length; i++) {
// Reset empData every loop
var empData = "";
// Create new element to attach instead of adding plain text
var newTr = document.createElement('tr');
// Get data from object by index
empData += '<td>'+obj[i].name+'</td>';
empData += '<td>'+obj[i].age+'</td>';
empData += '<td>'+obj[i].city+'</td>';
// Set table data
newTr.innerHTML = empData;
// Append row every loop
toSHow.append(newTr);
}
}
Upvotes: 1
Reputation: 20229
The variable empData
is defined in myFunction
, and is undefined outside it.
Upvotes: 0
Reputation: 76
I guess instead of data.name,age & city you may have to use obj.name,obj.age & obj.city
Upvotes: 1