tablefilter

Adds filter dropdowns to the top row of any .table

  1. // ==UserScript==
  2. // @name tablefilter
  3. // @namespace crinfarr.io
  4. // @version 2024-07-12
  5. // @description Adds filter dropdowns to the top row of any .table
  6. // @author Crinfarr
  7. // @match *://*/*
  8. // @grant none
  9. // @run-at context-menu
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. for (let table of document.getElementsByClassName("table")) {
  14. let headers = table.getElementsByTagName('thead')[0].children[0].children;
  15. for (let headeridx in headers) {
  16. let ipt = document.createElement('input');
  17. ipt.type = 'text';
  18. ipt.addEventListener("change", () => {
  19. for (let row of table.getElementsByTagName('tbody')[0].children) {
  20. if (ipt.value == '') {
  21. row.hidden = false;
  22. }
  23. let cell = row.children[headeridx]
  24. let filters = ipt.value.split(/(?!<\\)\|\|/gm).map(s => s.trim());
  25. if (filters.some((filter) => {
  26. return cell.innerText.includes(filter);
  27. })) {
  28. console.log(`${cell.innerText} contains ${filters}`);
  29. row.hidden = false;
  30. } else {
  31. console.log(`${cell.innerText} does not contain ${filters}`);
  32. row.hidden = true;
  33. }
  34. }
  35. });
  36. headers[headeridx].appendChild(ipt);
  37. }
  38. }
  39. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址