Skip to content

Instantly share code, notes, and snippets.

@snosrap
snosrap / HTMLTableElement.prototype.fp_toTable.html
Last active June 25, 2025 09:39
Convert HTMLTableElement (with rowSpan and colSpan) into a JavaScript Array
<script type="text/javascript">
HTMLTableElement.prototype.fp_toTable = function(nullvalue = null) {
var columnCount = Array.from(this.rows).map(row => Array.from(row.cells).reduce((sum, cell) => sum + cell.colSpan, 0)).reduce((max, row) => Math.max(max, row), 0);
var itemCount = Array.from(this.rows).reduce((rsum, row) => rsum + Array.from(row.cells).reduce((csum, cell) => csum + (cell.colSpan * cell.rowSpan), 0), 0);
var rowCount = itemCount / columnCount;
var items = Array.apply(null, Array(itemCount));
tds = Array.from(this.getElementsByTagName('td'));
for(var i=0, ii=0; i<tds.length; i++, ii=items.indexOf(undefined, i)) {
items[ii] = tds[i].innerText;
for(var j=0;j<tds[i].colSpan;j++) {
@sstur
sstur / dom-to-json.js
Last active January 17, 2026 16:38
Stringify DOM nodes using JSON (and revive again)
function toJSON(node) {
let propFix = { for: 'htmlFor', class: 'className' };
let specialGetters = {
style: (node) => node.style.cssText,
};
let attrDefaultValues = { style: '' };
let obj = {
nodeType: node.nodeType,
};
if (node.tagName) {