Есть много похожих вопросов, но каждый, который я могу найти, использует jQuery, который я хочу смягчить.Содержимое вставленной строки будет создано динамически.Мой сломанный подход:
function addRow() {
let newRow = '<tr><td>Boo</td><td>✔</td><td></td><td>✔</td></tr>';
document.getElementById('new').insertBefore(newRow);
}
body {
padding: 50px;
font-family: sans-serif;
}
table, th, td {
border: 1px solid #000;
border-collapse: collapse;
}
th, td {
padding: 15px;
}
th {
text-transform: capitalize;
}
#new {
text-align: center;
font-weight: bold;
}
#new:hover {
cursor: pointer;
background-color: grey;
color: #fff;
}
<table>
<tbody>
<tr>
<th>title</th>
<th>multiple</th>
<th>required</th>
<th>special</th>
</tr>
<tr>
<td>Bar</td>
<td>✔</td>
<td>✔</td>
<td>✔</td>
</tr>
<tr>
<td>Foo</td>
<td>✔</td>
<td></td>
<td>✔</td>
</tr>
<tr>
<td id="new" colspan="6" onClick="addRow">ADD NEW SETTING</td>
</tr>
</tbody>
</table>
Пожалуйста, не стесняйтесь оптимизировать код так, как вы хотите, если вы думаете, что это должно быть сделано по-другому.