/* * THIS IS NOT A PLUGIN * ~ but a personal snippet * * Sometimes when prototyping my designs, I like to get dummy data pretty fast. * I use this snippet to extract that data from working (aka "real life") tables from other HTML tables I find on the net. * So I'll need that same data but inside an object. * * This script assumes by default the table has the following structure: *
| * |
|---|
| */ var o = { // default options selectors: { table: 'table', th: 'thead th', // relative to $table tr: 'tbody tr' // relative to $table } }, $table, data = [], headings = [], log = console.log; $table = document.querySelector(o.selectors.table); // Get headings $table.querySelectorAll(o.selectors.th).forEach((th) => { headings[headings.length] = th.innerText; }); $table.querySelectorAll(o.selectors.tr).forEach((tr, row) => { var obj = data[row] = {}; tr.querySelectorAll('td').forEach((td, i) => { obj[headings[i]] = td.innerText; }) }); log(JSON.stringify(data)); |