Sort the table
Bir tablo var:
İsim | Soyisim | Yaş |
---|---|---|
John | Smith | 10 |
Pete | Brown | 15 |
Ann | Lee | 5 |
... | ... | ... |
Belki içinde daha çok satır var.
"name"
sütunu tarafından sıralanması için kodu buraya yazın.
Çözüm kısa, ancak biraz kafa karıştırıcı görünebilir, bu yüzden burada kapsamlı yorumlar sunuyorum:
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);
-
table.querySelectorAll('tr')
gibi tüm<tr>
leri al, sonra onlardan bir array yap, çünkü array yöntemlerine ihtiyacımız var. -
İlk TR (
table.rows[0]
) aslında bir tablo başlığıdır, bu yüzden geri kalanını.slice(1)
ile alıyoruz. -
Daha sonra onları ilk
<td>
(isim alanı)'nın içeriği ile karşılaştıryoruz. -
Şimdi düğümleri
.append(...sortedRows)
olarak doğru sırada ekleyin.Tabloların doğrudan belirtilmeyen bir
öğesi vardır, bu yüzden onu alır ve içine ekleriz: basit birtable.append(...)
başarısız olacaktır.Lütfen not edin: Onları kaldırmak zorunda değiliz, sadece yeniden ekle (“re-insert”), onlar eski yerlerini kendiliğinden bırakacaktır.