Résumé de w3P.js

Utilisation de w3.filterHTML()

Rappel : La recherche ne portera pas sur une colonne, ni qu'au début de la string. Ce qui rend le filtrage effectué par w3.filterHTML() non optimal.

Ici, le filtrage se fait sur la première colonne.
Le hic, les lignes non concernées s'affichent aussi, sauf la dernière colonne

tester avec : "c", "x", "."

Customer City Country
Alfreds Futterkiste Berlin Germany
Berglunds snabbköp Lule Sweden
Centro comercial Moctezuma México D.F. Mexico
Ernst Handel Graz Austria
FISSA Fabrica Inter. Salchichas S.A. Madrid Spain
Galería del gastrónomo Barcelona Spain
Island Trading Cowes UK
Königlich Essen Brandenburg Germany
Laughing Bacchus Wine Cellars Vancouver Canada

Ici, le filtrage se fait sur toutes les colonnes

Customer City Country
Alfreds Futterkiste Berlin Germany
Berglunds snabbköp Lule Sweden
Centro comercial Moctezuma México D.F. Mexico
Ernst Handel Graz Austria
FISSA Fabrica Inter. Salchichas S.A. Madrid Spain
Galería del gastrónomo Barcelona Spain
Island Trading Cowes UK
Königlich Essen Brandenburg Germany
Laughing Bacchus Wine Cellars Vancouver Canada

Code JS de la fonction w3.sortHTML :

w3.sortHTML = function(id, sel, sortvalue) {
  var a, b, i, ii, y, bytt, v1, v2, cc, j;
  a = w3.getElements(id);
  for (i = 0; i < a.length; i++) {
    for (j = 0; j < 2; j++) {
      cc = 0;
      y = 1;
      while (y == 1) {
        y = 0;
        b = a[i].querySelectorAll(sel);
        for (ii = 0; ii < (b.length - 1); ii++) {
          bytt = 0;
          if (sortvalue) {
            v1 = b[ii].querySelector(sortvalue).innerText;
            v2 = b[ii + 1].querySelector(sortvalue).innerText;
          } else {
            v1 = b[ii].innerText;
            v2 = b[ii + 1].innerText;
          }
          v1 = v1.toLowerCase();
          v2 = v2.toLowerCase();
          if ((j == 0 && (v1 > v2)) || (j == 1 && (v1 < v2))) {
            bytt = 1;
            break;
          }
        }
        if (bytt == 1) {
          b[ii].parentNode.insertBefore(b[ii + 1], b[ii]);
          y = 1;
          cc++;
        }
      }
      if (cc > 0) {break;}
    }
  }
};