Advertisement
ErolKZ

Untitled

Feb 6th, 2022
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1.  
  2. function generateReport() {
  3.  
  4. let checkboxElements = document.querySelectorAll('input[type=checkbox]');
  5.  
  6. checkboxElements = Array.from(checkboxElements);
  7.  
  8. let checkedIndexes = checkboxElements.map(el => el.checked === true ? checkboxElements.indexOf(el) : null);
  9.  
  10. checkedIndexes = checkedIndexes.filter(el => el !== null);
  11.  
  12. console.log(checkedIndexes);
  13.  
  14. let trElements = document.querySelectorAll('tr');
  15.  
  16. trElements = Array.from(trElements);
  17.  
  18. let arrOfKeys = [];
  19.  
  20. let arrOfObjects = [];
  21.  
  22.  
  23. for (let i = 0; i < trElements.length; i++) {
  24.  
  25. if (i > 0) {
  26.  
  27. let obj = {};
  28.  
  29. let curArr = trElements[i].querySelectorAll('td');
  30.  
  31. curArr = Array.from(curArr);
  32.  
  33. // console.log(curArr);
  34.  
  35. trElements[i] = curArr.filter((el, ind) => checkedIndexes.includes(ind) ? el : false);
  36.  
  37. for (let j = 0; j < trElements[i].length; j++) {
  38.  
  39. obj[arrOfKeys[j].textContent.trim()] = trElements[i][j].textContent;
  40.  
  41. }
  42.  
  43. arrOfObjects.push(obj);
  44.  
  45. } else {
  46.  
  47. let curArr = trElements[i].querySelectorAll('th');
  48.  
  49. curArr = Array.from(curArr);
  50.  
  51. arrOfKeys = curArr.filter((el, ind) => checkedIndexes.includes(ind) ? el : false);
  52.  
  53. }
  54.  
  55. }
  56.  
  57.  
  58. arrOfObjects = JSON.stringify(arrOfObjects);
  59.  
  60. console.log(arrOfObjects);
  61.  
  62. let outputElement = document.getElementById('output');
  63.  
  64. outputElement.textContent = arrOfObjects;
  65.  
  66.  
  67. }
  68.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement