Jadvalni tartiblang
muhimlik: 5
Mana bu jadval:
<table id="table"> <thead> <tr> <th>Ism</th> <th>Familiya</th> <th>Yosh</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>
Unda ko’proq qatorlar bo’lishi mumkin.
Uni ism
ustuni bo`yicha tartiblash uchun kodni yozing.
Yechim qisqa, ammo biroz qiyin ko’rinishi mumkin, shuning uchun men unga keng sharhlar beraman:
let sortedRows = Array.from(table.tBodies[0].rows) // 1 .sort((rowA, rowB) => rowA.cells[0].innerHTML.localeCompare(rowB.cells[0].innerHTML) ); table.tBodies[0].append(...sortedRows); // (3)
Bosqichma-bosqich algoritm:
<tbody>
dan barcha<tr>
-ni oling.- Keyin ularni birinchi
<td>
(ism maydoni) mazmuni bo’yicha taqqoslab tartiblang. - Endi tugunlarni
.append(...sortedRows)
orqali kerakli tartibda kiriting.
Biz qator elementlarini olib tashlashimiz shart emas, shunchaki “qayta kiritish”, ular eski joyni avtomatik ravishda tark etishadi.
P.S. Bizning holatda, jadvalda aniq <tbody>
mavjud, lekin HTML jadvalida <tbody>
bo’lmasa ham, DOM tuzilmasi har doim shunday bo’ladi.