СоÑÑиÑовка ÑаблиÑÑ
ÐÐ¾Ñ ÑаблиÑа:
<table>
<thead>
<tr>
<th>Name</th><th>Surname</th><th>Age</th>
</tr>
</thead>
<tbody>
<tr>
<td>John</td><td>Smith</td><td>10</td>
</tr>
<tr>
<td>Pete</td><td>Brown</td><td>15</td>
</tr>
<tr>
<td>Ann</td><td>Lee</td><td>5</td>
</tr>
<tr>
<td>...</td><td>...</td><td>...</td>
</tr>
</tbody>
</table>
Рней Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð±Ð¾Ð»ÑÑе ÑÑÑок.
ÐапиÑиÑе код Ð´Ð»Ñ ÑоÑÑиÑовки по ÑÑолбÑÑ "name".
РеÑение коÑоÑкое, но Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÐºÐ°Ð·Ð°ÑÑÑÑ Ð½ÐµÐ¼Ð½Ð¾Ð³Ð¾ ÑложнÑм, поÑÑÐ¾Ð¼Ñ Ð·Ð´ÐµÑÑ Ñ Ð¿ÑедоÑÑÐ°Ð²Ð»Ñ Ð¿Ð¾Ð´ÑобнÑе комменÑаÑии:
let sortedRows = Array.from(table.rows)
.slice(1)
.sort((rowA, rowB) => rowA.cells[0].innerHTML > rowB.cells[0].innerHTML ? 1 : -1);
table.tBodies[0].append(...sortedRows);
-
ÐолÑÑим вÑе
<tr>, какtable.querySelectorAll('tr'), заÑем Ñделаем маÑÑив из Ð½Ð¸Ñ , поÑÐ¾Ð¼Ñ ÑÑо нам понадобÑÑÑÑ Ð¼ÐµÑÐ¾Ð´Ñ Ð¼Ð°ÑÑива. -
ÐеÑвÑй TR (
table.rows[0]) â ÑÑо заголовок ÑаблиÑÑ, поÑÑÐ¾Ð¼Ñ Ð¼Ñ Ð±ÐµÑÑм.slice(1). -
ÐаÑем оÑÑоÑÑиÑÑем Ð¸Ñ Ð¿Ð¾ ÑодеÑÐ¶Ð¸Ð¼Ð¾Ð¼Ñ Ð² пеÑвом
<td>(по имени). -
ТепеÑÑ Ð²ÑÑавим ÑÐ·Ð»Ñ Ð² пÑавилÑном поÑÑдке
.append(...sortedRows).ТаблиÑÑ Ð²Ñегда имеÑÑ Ð½ÐµÑвнÑй ÑлеменÑ
<tbody>, поÑÑÐ¾Ð¼Ñ Ð½Ð°Ð¼ нÑжно полÑÑиÑÑ ÐµÐ³Ð¾ и вÑÑавиÑÑ Ð² него: пÑоÑÑойtable.append(...)поÑеÑÐ¿Ð¸Ñ Ð½ÐµÑдаÑÑ.ÐбÑаÑиÑе внимание: нам не нÑжно Ð¸Ñ ÑдалÑÑÑ, пÑоÑÑо «вÑÑавлÑем Ð¸Ñ Ð·Ð°Ð½Ð¾Ð²Ð¾Â», они авÑомаÑиÑеÑки покинÑÑ ÑÑаÑое меÑÑо.