Tengo una tabla HTML muy simple con 4 columnas:
Facility Name, Phone #, City, Specialty
Quiero que el usuario pueda ordenar por nombre de instalación y ciudad solamente.
¿Cómo puedo codificar esto usando jQuery?
jquery
sorting
html-table
Tony Noriega
fuente
fuente
Respuestas:
Si desea evitar todas las campanas y silbatos, entonces puedo sugerir este simple
sortElements
complemento . Uso:Y una demo. (haga clic en los encabezados de columna "ciudad" y "instalación" para ordenar)
fuente
Error: illegal character
el html no es exactamente el mismo, también tengo thead y tboy, ¿me pueden ayudar con esto por favor?$.text([a]) == $.text([b])
usar$.text([a]).toUpperCase() == $.text([b]).toUpperCase()
lo arreglará.Encontré esto, y pensé en tirar mis 2 centavos. Haga clic en los encabezados de columna para ordenar de forma ascendente, y nuevamente para ordenar de manera descendente.
** Actualización: 2018
fuente
td
s, por ejemplo,<a href="#">Test</a>
la clasificación se refiere a<a...
. Para ordenar por texto solo necesita cambiarhtml()
en la última línea atext()
.comparer(..)
si supiera exactamente qué formato desea admitir). Mientras tanto, si usayyyy-MM-dd
"string
", la ordenación ordenará los datos por usted. por ejemplo jsbin.com/pugedip/1De lejos, el más fácil que he usado es: http://datatables.net/
Increíblemente simple ... solo asegúrese de ir a la ruta de reemplazo DOM (es decir, construir una tabla y dejar que DataTables la vuelva a formatear), luego asegúrese de formatear su tabla con
<thead>
y<tbody>
o no va a funcionar. Esa es la única trampa.También hay soporte para AJAX, etc. Como con todas las piezas de código realmente buenas, también es MUY fácil desactivarlo todo. Sin embargo, te sorprendería lo que podrías usar. Comencé con un DataTable "desnudo" que solo clasificó un campo y luego me di cuenta de que algunas de las características eran realmente relevantes para lo que estoy haciendo. Los clientes aman las nuevas características.
Puntos de bonificación a DataTables para soporte completo de ThemeRoller ...
También he tenido buena suerte con el clasificador de tablas, pero no es tan fácil, no está tan bien documentado y solo tiene características correctas.
fuente
Recién comenzamos a usar esta herramienta ingeniosa: https://plugins.jquery.com/tablesorter/
Hay un video sobre su uso en: http://www.highoncoding.com/Articles/695_Sorting_GridView_Using_JQuery_TableSorter_Plug_in.aspx
Con una mesa simple
fuente
Mi respuesta sería "ten cuidado". Muchos complementos de ordenación de tablas jQuery solo clasifican lo que pasa al navegador. En muchos casos, debe tener en cuenta que las tablas son conjuntos de datos dinámicos y que podrían contener miles de millones de líneas de datos.
Usted menciona que solo tiene 4 columnas, pero mucho más importante, no menciona cuántas filas estamos hablando aquí.
Si pasa 5000 líneas al navegador desde la base de datos, sabiendo que la tabla de base de datos real contiene 100,000 filas, mi pregunta es: ¿cuál es el punto de hacer que la tabla sea ordenable? Para hacer una ordenación adecuada, debe enviar la consulta de vuelta a la base de datos y dejar que la base de datos (una herramienta realmente diseñada para ordenar datos) haga la clasificación por usted.
Sin embargo, en respuesta directa a su pregunta, el mejor complemento de clasificación que he encontrado es Ingrid. Hay muchas razones por las que no me gusta este complemento ("campanas y silbidos innecesarios ..." como lo llamas), pero una de sus mejores características en términos de género es que usa ajax y no No asuma que ya le pasó todos los datos antes de que haga su clasificación.
Reconozco que esta respuesta es probablemente exagerada (y con más de 2 años de retraso) para sus requisitos, pero me molesta cuando los desarrolladores en mi campo pasan por alto este punto. Así que espero que alguien más se dé cuenta.
Me siento mejor ahora.
fuente
Esta es una buena manera de ordenar una tabla:
El violín se puede encontrar aquí:
https://jsfiddle.net/e3s84Luw/
La explicación se puede encontrar aquí: https://www.learningjquery.com/2017/03/how-to-sort-html-table-using-jquery-code
fuente
Me encanta esta respuesta aceptada, sin embargo, rara vez tienes requisitos para ordenar html y no tienes que agregar iconos que indiquen la dirección de clasificación. Tomé el ejemplo de uso de la respuesta de aceptación y lo arreglé rápidamente simplemente agregando bootstrap a mi proyecto y agregando el siguiente código:
<div></div>
dentro de cada uno
<th>
para que tenga un lugar para configurar el icono.setIcon(this, inverse);
del Uso de la respuesta aceptada, debajo de la línea:
th.click(function () {
y agregando el método setIcon:
Aquí hay una demostración . - Necesita ejecutar la demostración en Firefox o IE, o deshabilitar la comprobación de tipo MIME de Chrome para que la demostración funcione. Depende del complemento sortElements, vinculado por la respuesta aceptada, como un recurso externo. Sólo un aviso!
fuente
Aquí hay un cuadro que puede ser útil para decidir cuál usar: http://blog.sematext.com/2011/09/19/top-javascript-dynamic-table-libraries/
fuente
La respuesta de @Nick Grealy es excelente, pero no tiene en cuenta los posibles
rowspan
atributos de las celdas del encabezado de la tabla (y probablemente las otras respuestas tampoco lo hacen). Aquí hay una mejora de la respuesta de @Nick Grealy que corrige eso. Basado en esta respuesta también (gracias @Andrew Orlov).También he reemplazado la
$.isNumeric
función por una personalizada (gracias @zad) para que funcione con versiones anteriores de jQuery.Para activarlo, agréguelo
class="sortable"
a la<table>
etiqueta.fuente
Puede usar un complemento jQuery ( breedjs ) que proporciona clasificación, filtro y paginación:
HTML:
JS:
Ejemplo de trabajo en violín
fuente
Este no cuelga el / los navegador / s, más fácil de configurar:
fuente
A la respuesta de James, solo cambiaré la función de clasificación para hacerlo más universal. De esta manera, ordenará el texto alfabéticamente y los números como números.
fuente
Otro enfoque para ordenar la tabla HTML. (basado en W3.JS HTML Sort )
fuente
Terminé usando la respuesta de Nick (la más popular pero no aceptada) https://stackoverflow.com/a/19947532/5271220
y lo combiné con https://stackoverflow.com/a/16819442/5271220 pero no quise agregar iconos o fontawesome al proyecto. Los estilos CSS para sort-column-asc / desc hice color, relleno, borde redondeado.
También lo modifiqué para ir por clase en lugar de por cualquiera para poder controlar cuáles se pueden ordenar. Esto también podría ser útil más adelante si hay dos tablas, aunque sería necesario realizar más modificaciones para eso.
cuerpo:
... más abajo en el cuerpo
funciones:
fuente
¡Mi voto! jquery.sortElements.js y jquery simple
Muy simple, muy fácil, gracias nandhp ...
Dei uma melhorada do código
One cod mejor! Función para todas las tablas en todo Th en todos los tiempos ... ¡Míralo!
MANIFESTACIÓN
fuente
.live()
.