$.getJSON('/api/spots', function(jsonData) { let headers = Object.keys(jsonData[0]); let table = $('').append(''); ["Time", "DX", "Frequency", "Mode", "Comment", "Source", "DE"].forEach(header => table.find('thead tr').append(``)); jsonData.forEach(row => { let $tr = $(''); $tr.append(``); $tr.append(``); $tr.append(``); $tr.append(``); $tr.append(''); $tr.append(``); $tr.append(``); table.find('tbody').append($tr); }); $('#table-container').html(table); }); function escapeHtml(str) { if (typeof str !== 'string') { return ''; } const escapeCharacter = (match) => { switch (match) { case '&': return '&'; case '<': return '<'; case '>': return '>'; case '"': return '"'; case '\'': return '''; case '`': return '`'; default: return match; } }; return str.replace(/[&<>"'`]/g, escapeCharacter); }
${header}
${row["time"]}${row["dx_call"]}${row["freq"]}${row["mode"]}').append(escapeHtml(`${row["comment"]}`)).append('${row["source"]}${row["de_call"]}