Saya memiliki tabel HTML yang sangat sederhana dengan 4 kolom:
Facility Name, Phone #, City, Specialty
Saya ingin pengguna dapat mengurutkan berdasarkan Nama Fasilitas dan Kota saja.
Bagaimana saya bisa mengkode ini menggunakan jQuery?
jquery
sorting
html-table
tony noriega
sumber
sumber
Jawaban:
Jika Anda ingin menghindari semua lonceng dan peluit maka boleh saya sarankan plugin sederhana ini
sortElements
. Pemakaian:Dan sebuah demo. (klik tajuk kolom "kota" dan "fasilitas" untuk menyortir)
sumber
Error: illegal character
, htmlnya tidak persis sama, saya juga punya thead dan tboy, bisakah Anda membantu saya dengan ini?$.text([a]) == $.text([b])
menggunakan$.text([a]).toUpperCase() == $.text([b]).toUpperCase()
akan memperbaikinya.Saya menemukan ini, dan berpikir saya akan membuang 2 sen saya. Klik pada tajuk kolom untuk mengurutkan naik, dan lagi untuk mengurutkan turun.
** Pembaruan: 2018
sumber
td
s, mis<a href="#">Test</a>
. Pengurutan menganggap<a...
. Untuk mengurutkan berdasarkan teks saja Anda perlu mengubahhtml()
di baris terakhir ketext()
.comparer(..)
jika Anda tahu persis format apa yang ingin Anda dukung). Sementara itu, jika Anda menggunakanyyyy-MM-dd
, "string
" penyortiran akan memesan data untuk Anda. misalnya jsbin.com/pugedip/1Sejauh ini, yang termudah yang saya gunakan adalah: http://datatables.net/
Sangat luar biasa sederhana ... hanya pastikan jika Anda pergi rute penggantian DOM (yaitu, membangun tabel dan membiarkan DataTables memformat ulang itu) maka pastikan untuk memformat meja Anda dengan
<thead>
dan<tbody>
atau itu tidak akan berhasil. Itu tentang satu-satunya gotcha.Ada juga dukungan untuk AJAX, dll. Seperti semua kode yang benar-benar bagus, juga SANGAT mudah untuk mematikannya. Anda akan terkejut apa yang mungkin Anda gunakan. Saya mulai dengan "telanjang" DataTable yang hanya mengurutkan satu bidang dan kemudian menyadari bahwa beberapa fitur benar-benar relevan dengan apa yang saya lakukan. Klien MENCINTAI fitur baru.
Poin bonus ke DataTables untuk dukungan ThemeRoller lengkap ....
Saya juga beruntung menggunakan tablesorter, tetapi tidak semudah itu, tidak cukup baik didokumentasikan, dan hanya memiliki fitur ok.
sumber
Kami baru saja mulai menggunakan alat apik ini: https://plugins.jquery.com/tablesorter/
Ada video tentang penggunaannya di: http://www.highoncoding.com/Articles/695_Sorting_GridView_Using_JQuery_TableSorter_Plug_in.aspx
Dengan meja sederhana
sumber
Jawaban saya akan "hati-hati". Banyak add-on pengurutan tabel jQuery hanya mengurutkan apa yang Anda berikan ke browser. Dalam banyak kasus, Anda harus ingat bahwa tabel adalah kumpulan data yang dinamis, dan berpotensi mengandung zillions baris data.
Anda menyebutkan bahwa Anda hanya memiliki 4 kolom, tetapi jauh lebih penting, Anda tidak menyebutkan berapa banyak baris yang kita bicarakan di sini.
Jika Anda melewatkan 5.000 baris ke browser dari database, mengetahui bahwa tabel database aktual berisi 100.000 baris, pertanyaan saya adalah: apa gunanya membuat tabel dapat diurutkan? Untuk melakukan pengurutan yang tepat, Anda harus mengirim kueri kembali ke database, dan membiarkan database (alat yang sebenarnya dirancang untuk mengurutkan data) melakukan pengurutan untuk Anda.
Sebagai jawaban langsung atas pertanyaan Anda, add-on sortir terbaik yang pernah saya temui adalah Ingrid. Ada banyak alasan mengapa saya tidak suka add-on ini ("lonceng dan peluit yang tidak perlu ..." seperti yang Anda sebut), tetapi salah satu fitur terbaik dalam hal jenis, adalah bahwa ia menggunakan ajax, dan tidak t berasumsi bahwa Anda sudah memberikan semua data sebelum melakukan sortir.
Saya menyadari bahwa jawaban ini mungkin berlebihan (dan lebih dari 2 tahun terlambat) untuk persyaratan Anda, tetapi saya merasa terganggu ketika pengembang di bidang saya mengabaikan hal ini. Jadi saya berharap orang lain mengambilnya.
Saya merasa lebih baik sekarang.
sumber
Ini adalah cara yang bagus untuk mengurutkan tabel:
Biola dapat ditemukan di sini:
https://jsfiddle.net/e3s84Luw/
Penjelasannya dapat ditemukan di sini: https://www.learningjquery.com/2017/03/how-to-sort-html-table-using-jquery-code
sumber
Saya suka jawaban yang diterima ini, namun, jarang Anda mendapatkan persyaratan untuk mengurutkan html dan tidak perlu menambahkan ikon yang menunjukkan arah pengurutan. Saya mengambil contoh penggunaan terima jawaban dan memperbaikinya dengan cepat hanya dengan menambahkan bootstrap ke proyek saya, dan menambahkan kode berikut:
<div></div>
di dalam masing-masing
<th>
sehingga Anda memiliki tempat untuk mengatur ikon.setIcon(this, inverse);
dari Penggunaan jawaban yang diterima, di bawah baris:
th.click(function () {
dan dengan menambahkan metode setIcon:
Ini demo . --Anda harus menjalankan demo di Firefox atau IE, atau menonaktifkan pemeriksaan tipe-MIME Chrome agar demo berfungsi. Itu tergantung pada Plugin sortElements, yang ditautkan oleh jawaban yang diterima, sebagai sumber daya eksternal. Hanya kepala!
sumber
Berikut adalah bagan yang dapat membantu memutuskan mana yang akan digunakan: http://blog.sematext.com/2011/09/19/top-javascript-dynamic-table-libraries/
sumber
@Nick Grealy jawabannya bagus, tetapi tidak memperhitungkan kemungkinan
rowspan
atribut dari sel header tabel (dan mungkin jawaban lain tidak melakukannya juga). Ini adalah perbaikan dari jawaban @Nick Grealy yang memperbaikinya. Berdasarkan jawaban ini juga (terima kasih @Andrew Orlov).Saya juga mengganti
$.isNumeric
fungsi dengan yang khusus (terima kasih @zad) agar berfungsi dengan versi jQuery yang lebih lama.Untuk mengaktifkannya, tambahkan
class="sortable"
ke<table>
tag.sumber
Anda dapat menggunakan plugin jQuery ( breedjs ) yang menyediakan sortir, filter, dan pagination:
HTML:
JS:
Contoh kerja pada biola
sumber
Yang ini tidak menutup browser, mudah dikonfigurasi lebih lanjut:
sumber
Untuk respons James, saya hanya akan mengubah fungsi penyortiran agar lebih universal. Dengan cara ini akan mengurutkan teks alfabet dan angka seperti angka.
sumber
Pendekatan lain untuk mengurutkan tabel HTML. (berdasarkan W3.JS HTML Sort )
sumber
Saya akhirnya menggunakan jawaban Nick (yang paling populer tetapi tidak diterima) https://stackoverflow.com/a/19947532/5271220
dan dikombinasikan dengan https://stackoverflow.com/a/16819442/5271220 tetapi tidak ingin menambahkan ikon atau fontawesome ke proyek. Gaya CSS untuk sort-kolom-asc / desc saya lakukan warna, padding, batas bulat.
Saya juga memodifikasinya untuk naik kelas bukan oleh yang lain sehingga kita bisa mengontrol mana yang bisa diurutkan. Ini juga bisa berguna nanti jika ada dua tabel meskipun modifikasi lebih lanjut perlu dilakukan untuk itu.
tubuh:
... lebih jauh ke bawah tubuh
fungsi:
sumber
Suara saya! jquery.sortElements.js dan jquery sederhana
Sangat sederhana, sangat mudah, terima kasih nandhp ...
Dei uma melhorada do código
Satu cod lebih baik! Berfungsi untuk Semua tabel di semua Th di sepanjang waktu ... Lihat!
DEMO
sumber
.live()
.