Guest User

Untitled

a guest
Feb 16th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.36 KB | None | 0 0
  1. const table = document.getElementById('myTable');
  2.  
  3. const tableHeaders = table.querySelectorAll('thead > tr > th');
  4. const tableRows = table.querySelectorAll('tbody > tr');
  5.  
  6. document.getElementById('searchBox')
  7. .addEventListener('keyup', filterTable);
  8.  
  9. function filterTable(event) {
  10. let searchValue = event.target.value;
  11. if (!searchValue.length) {
  12. // Als er geen zoekterm is willen we alle rijen van de tabel laten zien, dit doen we door de class 'hidden' van alle rijen te verwijderen.
  13. tableRows.forEach(tableRow => {
  14. tableRow.classList.remove('hidden');
  15. });
  16. return;
  17. }
  18.  
  19. const columnToFilterBy = document.getElementById('selectedColumn').value;
  20. // We zoeken hier het id van de column op waarop we willen filteren zodat we hier later mee kunnen werken wanneer we over de rijen van de tabel heen loopen, op deze manier weten we welke column we moeten checken uit elke rij.
  21. const columnToFilterByIndex = Array.from(tableHeaders)
  22. .findIndex(tableHeader => tableHeader.id === columnToFilterBy);
  23. // Moet er gekeken worden naar hoofdletters of niet?
  24. const shouldIgnoreUppercase = document.getElementById('ignoreUpperCase').checked;
  25.  
  26. // Ga door elke rij heen in de tabel.
  27. tableRows.forEach(tableRow => {
  28. const columns = tableRow.querySelectorAll('td');
  29. // Ga door elke column heen in de desbetreffende tabel.
  30. columns.forEach((column, columnIndex) => {
  31. // Als de columnIndex niet gelijk is aan columnToFilterByIndex betekent dit dat deze column niet de column is waarop we willen filteren.
  32. if (columnIndex !== columnToFilterByIndex) {
  33. return;
  34. }
  35.  
  36. let columnText = column.textContent;
  37.  
  38. if (shouldIgnoreUppercase) {
  39. // Als shouldIgnoreUppercase waar is willen we zowel de tekst in de column en de zoekterm naar kleine letters veranderen.
  40. columnText = columnText.toLowerCase();
  41. searchValue = searchValue.toLowerCase();
  42. }
  43.  
  44. // Als de zoekterm zich niet begeeft in de tekst van de column willen we deze rij van de tabel verbergen.
  45. if (columnText.indexOf(searchValue) === -1) {
  46. tableRow.classList.add('hidden');
  47. return;
  48. }
  49. //
  50. tableRow.classList.remove('hidden');
  51. });
  52. });
  53. }
Add Comment
Please, Sign In to add comment