У меня есть очень простая таблица HTML с 4 столбцами:
Facility Name, Phone #, City, Specialty
Я хочу, чтобы пользователь мог сортировать только по названию объекта и городу .
Как я могу кодировать это с помощью JQuery?
jquery
sorting
html-table
Тони Норьега
источник
источник
Ответы:
Если вы хотите избежать всех наворотов, тогда я могу предложить этот простой
sortElements
плагин . Использование:И демо. (нажмите для сортировки заголовков столбцов "город" и "объект")
источник
Error: illegal character
HTML не совсем то же самое, у меня также есть thead и tboy, не могли бы вы помочь мне с этим, пожалуйста?$.text([a]) == $.text([b])
использования$.text([a]).toUpperCase() == $.text([b]).toUpperCase()
это исправит.Я столкнулся с этим, и думал, что я добавлю свои 2 цента. Нажмите на заголовки столбцов, чтобы отсортировать по возрастанию, и снова, чтобы отсортировать по убыванию.
** Обновление: 2018
источник
td
s, например,<a href="#">Test</a>
сортировка касается<a...
. Для сортировки только по тексту нужно изменитьhtml()
в последней строке наtext()
.comparer(..)
если точно знаете, какой формат хотите поддерживать). В то же время, если вы используетеyyyy-MM-dd
"string
", сортировка упорядочит данные за вас. например, jsbin.com/pugedip/1Безусловно, самый простой, который я использовал, это: http://datatables.net/
Удивительно просто ... просто убедитесь , что если вы идете на замену DOM маршрут (IE, создание таблицы и позволяя DataTables переформатировать) , то убедитесь , форматировать таблицу
<thead>
и<tbody>
или она не будет работать. Это единственное, что надо.Также есть поддержка AJAX и т. Д. Как и во всех действительно хороших частях кода, также ОЧЕНЬ легко отключить все это. Вы были бы удивлены тем, что вы могли бы использовать, хотя. Я начал с «чистого» DataTable, который сортировал только одно поле, а затем понял, что некоторые функции действительно имеют отношение к тому, что я делаю. Клиенты любят новые функции.
Бонус указывает на DataTables для полной поддержки ThemeRoller ....
Мне также повезло с таблицей сортировки, но это не так просто, не так хорошо документировано и имеет только хорошие функции.
источник
Мы только начали использовать этот удобный инструмент: https://plugins.jquery.com/tablesorter/
Есть видео по его использованию на: http://www.highoncoding.com/Articles/695_Sorting_GridView_Using_JQuery_TableSorter_Plug_in.aspx
С простым столом
источник
Мой ответ будет «будь осторожен». Многие дополнения для сортировки таблиц jQuery сортируют только то, что вы передаете в браузер. Во многих случаях вы должны иметь в виду, что таблицы являются динамическими наборами данных и могут содержать миллионы строк данных.
Вы упоминаете, что у вас есть только 4 столбца, но гораздо важнее то, что вы не упоминаете, сколько строк мы здесь обсуждаем.
Если вы передадите 5000 строк в базу данных из браузера, зная, что фактическая таблица базы данных содержит 100 000 строк, мой вопрос: какой смысл делать таблицу сортируемой? Чтобы сделать правильную сортировку, вам нужно отправить запрос обратно в базу данных, и пусть база данных (инструмент, фактически предназначенный для сортировки данных) сделает за вас сортировку.
В прямом ответе на ваш вопрос, тем не менее, лучшее дополнение сортировки, с которым я столкнулся, - это Ингрид. Есть много причин, по которым мне не нравится это дополнение («ненужные навороты ...», как вы его называете), но одна из его лучших возможностей с точки зрения сортировки - это то, что он использует ajax и не Предполагается, что вы уже передали ему все данные, прежде чем он выполнит их сортировку.
Я признаю, что этот ответ, вероятно, излишний (и более чем на 2 года позже) для ваших требований, но меня раздражает, когда разработчики в моей области игнорируют этот момент. Так что я надеюсь, что кто-то другой поймет это.
Я чувствую себя лучше сейчас.
источник
Это хороший способ сортировки таблицы:
Скрипку можно найти здесь:
https://jsfiddle.net/e3s84Luw/
Объяснение можно найти здесь: https://www.learningjquery.com/2017/03/how-to-sort-html-table-using-jquery-code
источник
Мне нравится этот принятый ответ, однако редко вы получаете требования для сортировки html и не нужно добавлять значки, указывающие направление сортировки. Я взял пример использования ответа на запрос и быстро исправил это, просто добавив загрузчик в свой проект и добавив следующий код:
<div></div>
внутри каждого,
<th>
чтобы у вас было место для установки иконки.setIcon(this, inverse);
от использования принятого ответа ниже строки:
th.click(function () {
и добавив метод setIcon:
Вот демо . - Вам нужно либо запустить демо в Firefox или IE, либо отключить проверку MIME-типов в Chrome, чтобы демо заработало. Это зависит от плагина sortElements, связанного принятым ответом, как внешнего ресурса. Просто на голову!
источник
Вот диаграмма, которая может быть полезна для определения того, что использовать: http://blog.sematext.com/2011/09/19/top-javascript-dynamic-table-libraries/
источник
@Nick Grealy - отличный ответ , но он не учитывает возможные
rowspan
атрибуты ячеек заголовка таблицы (и, вероятно, другие ответы тоже этого не делают). Вот улучшение ответа @Nick Grealy, которое исправляет это. На основании этого ответа тоже (спасибо @ Андрей Орлов).Я также заменил
$.isNumeric
функцию на пользовательскую (спасибо @zad), чтобы она работала со старыми версиями jQuery.Чтобы активировать его, добавьте
class="sortable"
в<table>
тег.источник
Вы можете использовать плагин jQuery ( breedjs ), который обеспечивает сортировку, фильтрацию и разбиение на страницы:
HTML:
JS:
Рабочий пример на скрипке
источник
Этот не зависает браузер / ы, легко настраивается дальше:
источник
На ответ Джеймса я только изменю функцию сортировки, чтобы сделать ее более универсальной. Таким образом, он будет сортировать текст по алфавиту и цифры, как числа.
источник
Другой подход к сортировке таблицы HTML. (на основе W3.JS HTML Sort )
источник
Я закончил тем, что использовал ответ Ника (самый популярный, но не принятый) https://stackoverflow.com/a/19947532/5271220
и объединил его с https://stackoverflow.com/a/16819442/5271220 но не хотел добавлять значки или просто потрясающе в проект. Стили CSS для sort-column-asc / desc Я сделал цветом, отступами, закругленной границей.
Я также изменил его, чтобы он соответствовал классу, а не любому, чтобы мы могли контролировать, какие из них сортируются. Это также может пригодиться позже, если появятся две таблицы, хотя для этого потребуется внести дополнительные изменения.
тело:
... дальше вниз по телу
функции:
источник
Мой голос! jquery.sortElements.js и простой jquery
Очень просто, очень легко, спасибо nandhp ...
Dei uma melhorada do código
Одна треска лучше! Функция для всех таблиц во всех че за все время ... Посмотри!
DEMO
источник
.live()
.