Tri d'un tableau sur lequel cellule d'en-tête a été cliqué
Si j'ai le texte suivant:
<table>
<thead>
<tr>
<th><a href="Index.cfm?Sort=0">First</a></th>
<th><a href="Index.cfm?Sort=1">Second</a></th>
<th><a href="Index.cfm?Sort=2">Third</a></th>
</tr>
</thead>
<tbody>
<tr>
<td>A</td>
<td class="num">123</td>
<td><input name="XYZ"></td>
</tr>
</tbody>
</table>
Q: Comment puis-je trier la table du corps sur la base de laquelle le tableau d'en-tête de la cellule a été cliqué?
<script>
$('th a').click(function() {
var $this = $(this).closest('th');
console.log($this.index());
return false;
});
</script>
(J'ai fait de chacun de la table d'en-tête des cellules de liens hypertextes, de sorte que si l'utilisateur a JavaScript désactivé, il sera de suivre le lien et être triés sur le côté serveur).
Vous devez vous connecter pour publier un commentaire.
Vous pourriez être intéressé par Plugin jQuery: Tablesorter ou tout n'importe quelle autre table de tri plugin.
Ce n'est pas aussi simple qu'il y paraît.
Tout d'abord, vous devez décider si vous allez seulement de tri alphanumérique ou des dates, des nombres, etc. Ensuite, vous devez aller à travers les données dans chaque cellule, l'ajouter à un tableau, trier le tableau, supprimer les tr de la table, et rajoutez-les dans le bon ordre.
Comme il arrive, il y a un très bon plugin qui le fait pour vous:
http://tablesorter.com/docs/
Un autre plugin JQuery: http://datatables.net/
Je crois que c'est censé être l'INTERFACE utilisateur de JQuery compatible.
Edit:
Un tri personnalisé fonctions sont prises en charge.
http://datatables.net/plug-ins/sorting