DOM Manipulation Using createElement, appendChild, insertBefore, removeChild, etc
Example #1
This example shows the modification of the DOM for the contacts table. Both addition and replacement actions occur.
Contact Input
Contact List
FOREACH Loop Code Snippet
function updateTable() {
var table = document.getElementById('contact_list');
var div = document.getElementById('contact_list_div');
var contactList = JSON.parse(localStorage.getItem("contactList"));
var newTable = document.createElement('table');
newTable.id = 'contact_list';
var newTableHead = document.createElement('thead');
var newTableHeadRow = document.createElement('tr');
var newTableHeadName = document.createElement('th');
newTableHeadName.appendChild(document.createTextNode('Name'));
var newTableHeadPhone = document.createElement('th');
newTableHeadPhone.appendChild(document.createTextNode('Phone'));
var newTableHeadAddress = document.createElement('th');
newTableHeadAddress.appendChild(document.createTextNode('Address'));
var newTableHeadEmail = document.createElement('th');
newTableHeadEmail.appendChild(document.createTextNode('Email'));
var newTableHeadAction = document.createElement('th');
newTableHeadAction.appendChild(document.createTextNode('Action'));
newTableHeadRow.appendChild(newTableHeadName);
newTableHeadRow.appendChild(newTableHeadPhone);
newTableHeadRow.appendChild(newTableHeadAddress);
newTableHeadRow.appendChild(newTableHeadEmail);
newTableHeadRow.appendChild(newTableHeadAction);
newTableHead.appendChild(newTableHeadRow);
var newTableBody = document.createElement('tbody');
if(contactList !== null) {
var count = 0;
contactList.forEach(function(rowData) {
var row = document.createElement('tr');
var nameCell = document.createElement('td');
nameCell.appendChild(document.createTextNode(rowData.name));
row.appendChild(nameCell);
var phoneCell = document.createElement('td');
phoneCell.appendChild(document.createTextNode(rowData.phone));
row.appendChild(phoneCell);
var addressCell = document.createElement('td');
addressCell.appendChild(document.createTextNode(rowData.address));
row.appendChild(addressCell);
var emailCell = document.createElement('td');
emailCell.appendChild(document.createTextNode(rowData.email));
row.appendChild(emailCell);
var actionCell = document.createElement('td');
actionCell.innerHTML = "";
row.appendChild(actionCell);
newTableBody.appendChild(row);
count++;
});
}
newTable.appendChild(newTableHead);
newTable.appendChild(newTableBody);
div.replaceChild(newTable, table);
}