|
14 | 14 |
|
15 | 15 | function styleCell_m4thvn8u3cwpmj8hiuwk(i, j, css_id) {
|
16 | 16 | var table = document.getElementById("tinytable_m4thvn8u3cwpmj8hiuwk");
|
17 |
| - var cell = table.rows[i]?.cells[j]; // Safe navigation to avoid errors |
| 17 | + var cell = table.querySelector(`[data-row="${i}"][data-col="${j}"]`); |
18 | 18 | if (cell) {
|
19 | 19 | console.log(`Styling cell at (${i}, ${j}) with class ${css_id}`);
|
20 | 20 | cell.classList.add(css_id);
|
|
24 | 24 | }
|
25 | 25 | function insertSpanRow(i, colspan, content) {
|
26 | 26 | var table = document.getElementById('tinytable_m4thvn8u3cwpmj8hiuwk');
|
27 |
| - var newRow = table.insertRow(i); |
| 27 | + // Find the row with data-row attribute matching i |
| 28 | + var targetRow = table.querySelector(`tr [data-row="${i}"]`).closest('tr'); |
| 29 | + var newRow = table.insertRow(targetRow.rowIndex); |
28 | 30 | var newCell = newRow.insertCell(0);
|
29 | 31 | newCell.setAttribute("colspan", colspan);
|
| 32 | + newCell.setAttribute("data-col", "0"); |
| 33 | + newCell.setAttribute("data-row", i - 1); |
30 | 34 | // newCell.innerText = content;
|
31 | 35 | // this may be unsafe, but innerText does not interpret <br>
|
32 | 36 | newCell.innerHTML = content;
|
33 | 37 | }
|
34 | 38 | function spanCell_m4thvn8u3cwpmj8hiuwk(i, j, rowspan, colspan) {
|
35 | 39 | var table = document.getElementById("tinytable_m4thvn8u3cwpmj8hiuwk");
|
36 |
| - const targetRow = table.rows[i]; |
37 |
| - const targetCell = targetRow.cells[j]; |
| 40 | + const targetCell = table.querySelector(`[data-row="${i}"][data-col="${j}"]`); |
| 41 | + if (!targetCell) { |
| 42 | + console.warn(`Cell at (${i}, ${j}) not found.`); |
| 43 | + } |
| 44 | + |
| 45 | + // Get all cells that need to be removed |
| 46 | + const cellsToRemove = []; |
38 | 47 | for (let r = 0; r < rowspan; r++) {
|
39 |
| - // Only start deleting cells to the right for the first row (r == 0) |
40 |
| - if (r === 0) { |
41 |
| - // Delete cells to the right of the target cell in the first row |
42 |
| - for (let c = colspan - 1; c > 0; c--) { |
43 |
| - if (table.rows[i + r].cells[j + c]) { |
44 |
| - table.rows[i + r].deleteCell(j + c); |
45 |
| - } |
46 |
| - } |
47 |
| - } |
48 |
| - // For rows below the first, delete starting from the target column |
49 |
| - if (r > 0) { |
50 |
| - for (let c = colspan - 1; c >= 0; c--) { |
51 |
| - if (table.rows[i + r] && table.rows[i + r].cells[j]) { |
52 |
| - table.rows[i + r].deleteCell(j); |
53 |
| - } |
| 48 | + for (let c = 0; c < colspan; c++) { |
| 49 | + if (r === 0 && c === 0) continue; // Skip the target cell |
| 50 | + const cell = table.querySelector(`[data-row="${i + r}"][data-col="${j + c}"]`); |
| 51 | + if (cell) { |
| 52 | + cellsToRemove.push(cell); |
54 | 53 | }
|
55 | 54 | }
|
56 | 55 | }
|
57 |
| - // Set rowspan and colspan of the target cell |
58 |
| - targetCell.rowSpan = rowspan; |
59 |
| - targetCell.colSpan = colspan; |
| 56 | + |
| 57 | + // Remove all cells |
| 58 | + cellsToRemove.forEach(cell => cell.remove()); |
| 59 | + |
| 60 | + // Set rowspan and colspan of the target cell if it exists |
| 61 | + if (targetCell) { |
| 62 | + targetCell.rowSpan = rowspan; |
| 63 | + targetCell.colSpan = colspan; |
| 64 | + } |
60 | 65 | }
|
61 | 66 | // tinytable span after
|
62 | 67 | window.addEventListener('load', function () {
|
63 | 68 | var cellsToStyle = [
|
64 | 69 | // tinytable style arrays after
|
65 |
| - { positions: [ { i: 15, j: 1 }, { i: 15, j: 2 }, ], css_id: 'tinytable_css_u5i4tb8acz516c5lsr29',}, |
66 |
| - { positions: [ { i: 8, j: 2 }, { i: 8, j: 1 }, ], css_id: 'tinytable_css_iox90hlcz6p88f470o4c',}, |
67 |
| - { positions: [ { i: 1, j: 1 }, { i: 2, j: 1 }, { i: 4, j: 1 }, { i: 5, j: 1 }, { i: 6, j: 1 }, { i: 7, j: 1 }, { i: 5, j: 2 }, { i: 9, j: 1 }, { i: 10, j: 1 }, { i: 11, j: 1 }, { i: 12, j: 1 }, { i: 13, j: 1 }, { i: 14, j: 1 }, { i: 12, j: 2 }, { i: 3, j: 1 }, { i: 1, j: 2 }, { i: 2, j: 2 }, { i: 3, j: 2 }, { i: 4, j: 2 }, { i: 9, j: 2 }, { i: 6, j: 2 }, { i: 7, j: 2 }, { i: 13, j: 2 }, { i: 10, j: 2 }, { i: 11, j: 2 }, { i: 14, j: 2 }, ], css_id: 'tinytable_css_87pizrt6gpue7tq68k7m',}, |
68 |
| - { positions: [ { i: 0, j: 1 }, { i: 0, j: 2 }, ], css_id: 'tinytable_css_5jsz1u1bau6rax203jg7',}, |
69 |
| - { positions: [ { i: 15, j: 0 }, ], css_id: 'tinytable_css_evu8i6m1snsv5kmmasu3',}, |
70 |
| - { positions: [ { i: 8, j: 0 }, ], css_id: 'tinytable_css_ue01fe9hmaas4mta0vfc',}, |
71 |
| - { positions: [ { i: 1, j: 0 }, { i: 2, j: 0 }, { i: 3, j: 0 }, { i: 4, j: 0 }, { i: 5, j: 0 }, { i: 6, j: 0 }, { i: 7, j: 0 }, { i: 12, j: 0 }, { i: 9, j: 0 }, { i: 10, j: 0 }, { i: 11, j: 0 }, { i: 13, j: 0 }, { i: 14, j: 0 }, ], css_id: 'tinytable_css_dcq09jxgyitf4or5kg1s',}, |
72 |
| - { positions: [ { i: 0, j: 0 }, ], css_id: 'tinytable_css_qnddps3hrarwxnclv9tv',}, |
| 70 | + { positions: [ { i: '15', j: 1 }, { i: '15', j: 2 }, ], css_id: 'tinytable_css_u5i4tb8acz516c5lsr29',}, |
| 71 | + { positions: [ { i: '8', j: 2 }, { i: '8', j: 1 }, ], css_id: 'tinytable_css_iox90hlcz6p88f470o4c',}, |
| 72 | + { positions: [ { i: '1', j: 1 }, { i: '2', j: 1 }, { i: '4', j: 1 }, { i: '5', j: 1 }, { i: '6', j: 1 }, { i: '7', j: 1 }, { i: '5', j: 2 }, { i: '9', j: 1 }, { i: '10', j: 1 }, { i: '11', j: 1 }, { i: '12', j: 1 }, { i: '13', j: 1 }, { i: '14', j: 1 }, { i: '12', j: 2 }, { i: '3', j: 1 }, { i: '1', j: 2 }, { i: '2', j: 2 }, { i: '3', j: 2 }, { i: '4', j: 2 }, { i: '9', j: 2 }, { i: '6', j: 2 }, { i: '7', j: 2 }, { i: '13', j: 2 }, { i: '10', j: 2 }, { i: '11', j: 2 }, { i: '14', j: 2 }, ], css_id: 'tinytable_css_87pizrt6gpue7tq68k7m',}, |
| 73 | + { positions: [ { i: '0', j: 1 }, { i: '0', j: 2 }, ], css_id: 'tinytable_css_5jsz1u1bau6rax203jg7',}, |
| 74 | + { positions: [ { i: '15', j: 0 }, ], css_id: 'tinytable_css_evu8i6m1snsv5kmmasu3',}, |
| 75 | + { positions: [ { i: '8', j: 0 }, ], css_id: 'tinytable_css_ue01fe9hmaas4mta0vfc',}, |
| 76 | + { positions: [ { i: '1', j: 0 }, { i: '2', j: 0 }, { i: '3', j: 0 }, { i: '4', j: 0 }, { i: '5', j: 0 }, { i: '6', j: 0 }, { i: '7', j: 0 }, { i: '12', j: 0 }, { i: '9', j: 0 }, { i: '10', j: 0 }, { i: '11', j: 0 }, { i: '13', j: 0 }, { i: '14', j: 0 }, ], css_id: 'tinytable_css_dcq09jxgyitf4or5kg1s',}, |
| 77 | + { positions: [ { i: '0', j: 0 }, ], css_id: 'tinytable_css_qnddps3hrarwxnclv9tv',}, |
73 | 78 | ];
|
74 | 79 |
|
75 | 80 | // Loop over the arrays to style the cells
|
|
97 | 102 | <thead>
|
98 | 103 |
|
99 | 104 | <tr>
|
100 |
| - <th scope="col"> </th> |
101 |
| - <th scope="col">First&Second</th> |
102 |
| - <th scope="col">Third_Fourth</th> |
| 105 | + <th scope="col" data-row="0" data-col="0"> </th> |
| 106 | + <th scope="col" data-row="0" data-col="1">First&Second</th> |
| 107 | + <th scope="col" data-row="0" data-col="2">Third_Fourth</th> |
103 | 108 | </tr>
|
104 | 109 | </thead>
|
105 | 110 |
|
106 | 111 | <tbody>
|
107 | 112 | <tr>
|
108 |
| - <td>(Intercept)</td> |
109 |
| - <td>-103.772</td> |
110 |
| - <td>-103.772</td> |
| 113 | + <td data-row="1" data-col="0">(Intercept)</td> |
| 114 | + <td data-row="1" data-col="1">-103.772</td> |
| 115 | + <td data-row="1" data-col="2">-103.772</td> |
111 | 116 | </tr>
|
112 | 117 | <tr>
|
113 |
| - <td></td> |
114 |
| - <td>(103.551)</td> |
115 |
| - <td>(103.551)</td> |
| 118 | + <td data-row="2" data-col="0"></td> |
| 119 | + <td data-row="2" data-col="1">(103.551)</td> |
| 120 | + <td data-row="2" data-col="2">(103.551)</td> |
116 | 121 | </tr>
|
117 | 122 | <tr>
|
118 |
| - <td>under_score</td> |
119 |
| - <td>-3.899</td> |
120 |
| - <td>-3.899</td> |
| 123 | + <td data-row="3" data-col="0">under_score</td> |
| 124 | + <td data-row="3" data-col="1">-3.899</td> |
| 125 | + <td data-row="3" data-col="2">-3.899</td> |
121 | 126 | </tr>
|
122 | 127 | <tr>
|
123 |
| - <td></td> |
124 |
| - <td>(2.072)</td> |
125 |
| - <td>(2.072)</td> |
| 128 | + <td data-row="4" data-col="0"></td> |
| 129 | + <td data-row="4" data-col="1">(2.072)</td> |
| 130 | + <td data-row="4" data-col="2">(2.072)</td> |
126 | 131 | </tr>
|
127 | 132 | <tr>
|
128 |
| - <td>oh&yeah<sup>2</sup></td> |
129 |
| - <td>29.329</td> |
130 |
| - <td>29.329</td> |
| 133 | + <td data-row="5" data-col="0">oh&yeah<sup>2</sup></td> |
| 134 | + <td data-row="5" data-col="1">29.329</td> |
| 135 | + <td data-row="5" data-col="2">29.329</td> |
131 | 136 | </tr>
|
132 | 137 | <tr>
|
133 |
| - <td></td> |
134 |
| - <td>(7.169)</td> |
135 |
| - <td>(7.169)</td> |
| 138 | + <td data-row="6" data-col="0"></td> |
| 139 | + <td data-row="6" data-col="1">(7.169)</td> |
| 140 | + <td data-row="6" data-col="2">(7.169)</td> |
136 | 141 | </tr>
|
137 | 142 | <tr>
|
138 |
| - <td>drat</td> |
139 |
| - <td>40.961</td> |
140 |
| - <td>40.961</td> |
| 143 | + <td data-row="7" data-col="0">drat</td> |
| 144 | + <td data-row="7" data-col="1">40.961</td> |
| 145 | + <td data-row="7" data-col="2">40.961</td> |
141 | 146 | </tr>
|
142 | 147 | <tr>
|
143 |
| - <td></td> |
144 |
| - <td>(17.115)</td> |
145 |
| - <td>(17.115)</td> |
| 148 | + <td data-row="8" data-col="0"></td> |
| 149 | + <td data-row="8" data-col="1">(17.115)</td> |
| 150 | + <td data-row="8" data-col="2">(17.115)</td> |
146 | 151 | </tr>
|
147 | 152 | <tr>
|
148 |
| - <td>Num.Obs.</td> |
149 |
| - <td>32</td> |
150 |
| - <td>32</td> |
| 153 | + <td data-row="9" data-col="0">Num.Obs.</td> |
| 154 | + <td data-row="9" data-col="1">32</td> |
| 155 | + <td data-row="9" data-col="2">32</td> |
151 | 156 | </tr>
|
152 | 157 | <tr>
|
153 |
| - <td>R2</td> |
154 |
| - <td>0.759</td> |
155 |
| - <td>0.759</td> |
| 158 | + <td data-row="10" data-col="0">R2</td> |
| 159 | + <td data-row="10" data-col="1">0.759</td> |
| 160 | + <td data-row="10" data-col="2">0.759</td> |
156 | 161 | </tr>
|
157 | 162 | <tr>
|
158 |
| - <td>R2 Adj.</td> |
159 |
| - <td>0.733</td> |
160 |
| - <td>0.733</td> |
| 163 | + <td data-row="11" data-col="0">R2 Adj.</td> |
| 164 | + <td data-row="11" data-col="1">0.733</td> |
| 165 | + <td data-row="11" data-col="2">0.733</td> |
161 | 166 | </tr>
|
162 | 167 | <tr>
|
163 |
| - <td>AIC</td> |
164 |
| - <td>324.9</td> |
165 |
| - <td>324.9</td> |
| 168 | + <td data-row="12" data-col="0">AIC</td> |
| 169 | + <td data-row="12" data-col="1">324.9</td> |
| 170 | + <td data-row="12" data-col="2">324.9</td> |
166 | 171 | </tr>
|
167 | 172 | <tr>
|
168 |
| - <td>BIC</td> |
169 |
| - <td>332.2</td> |
170 |
| - <td>332.2</td> |
| 173 | + <td data-row="13" data-col="0">BIC</td> |
| 174 | + <td data-row="13" data-col="1">332.2</td> |
| 175 | + <td data-row="13" data-col="2">332.2</td> |
171 | 176 | </tr>
|
172 | 177 | <tr>
|
173 |
| - <td>Log.Lik.</td> |
174 |
| - <td>-157.443</td> |
175 |
| - <td>-157.443</td> |
| 178 | + <td data-row="14" data-col="0">Log.Lik.</td> |
| 179 | + <td data-row="14" data-col="1">-157.443</td> |
| 180 | + <td data-row="14" data-col="2">-157.443</td> |
176 | 181 | </tr>
|
177 | 182 | <tr>
|
178 |
| - <td>RMSE</td> |
179 |
| - <td>33.15</td> |
180 |
| - <td>33.15</td> |
| 183 | + <td data-row="15" data-col="0">RMSE</td> |
| 184 | + <td data-row="15" data-col="1">33.15</td> |
| 185 | + <td data-row="15" data-col="2">33.15</td> |
181 | 186 | </tr>
|
182 | 187 | </tbody>
|
183 | 188 | </table>
|
|
0 commit comments