$.getJSON('/api/spots', function(jsonData) { let headers = Object.keys(jsonData[0]); let table = $('
| ${header} | `)); jsonData.forEach(row => { let $tr = $('||||||
|---|---|---|---|---|---|---|
| ${time_formatted} | `); $tr.append(`${row["dx_flag"]} ${row["dx_call"]} | `); $tr.append(`${row["freq"]} | `); $tr.append(`${row["mode"]} | `); $tr.append('' + escapeHtml(`${row["comment"]}`) + ' | '); $tr.append(`${row["source"]} | `); $tr.append(`${row["de_flag"]} ${row["de_call"]} | `); 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); }