Advertisement
Igor150195

asadsads

Apr 25th, 2024
480
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <script>
  2.     document.querySelectorAll('.categoty-doc-block').forEach(function(block) {
  3.         let tabHeaders = block.querySelector('.subcategory-tab-list');
  4.         if (!tabHeaders) return false; // Если нет вкладок, выходим
  5.  
  6.         let tabHeadersItems = tabHeaders.querySelectorAll('.tab-link-default');
  7.         if (tabHeadersItems.length === 0) return false; // Если нет элементов вкладки, выходим
  8.  
  9.         let tabBody = block.querySelector('.document-list-wrapper');
  10.         let tabBodyItems = tabBody.querySelectorAll('.document-list-item');
  11.  
  12.         tabHeadersItems.forEach(function(item) {
  13.             let currentData = item.dataset.subcategory;
  14.  
  15.             if (tabBody.querySelectorAll(`[data-subcategory="${currentData}"]`).length === 0) {
  16.                 item.remove(); // Удалить вкладку, для которой нет содержимого
  17.             }
  18.         });
  19.  
  20.         // Обновляем tabHeadersItems после возможного удаления элементов
  21.         tabHeadersItems = tabHeaders.querySelectorAll('.tab-link-default');
  22.  
  23.         // Устанавливаем класс для первой вкладки и показываем соответствующие документы
  24.         if (tabHeadersItems.length > 0) {
  25.             let firstItem = tabHeadersItems[0];
  26.             firstItem.classList.add('w--current');
  27.  
  28.             let firstData = firstItem.dataset.subcategory;
  29.             tabBodyItems.forEach(function(item) {
  30.                 if (item.dataset.subcategory !== firstData) {
  31.                     item.style.display = 'none';
  32.                 }
  33.             });
  34.  
  35.             tabHeadersItems.forEach(function(item) {
  36.                 item.addEventListener('click', function() {
  37.                     let currentData = this.dataset.subcategory;
  38.  
  39.                     // Снимаем выделение с предыдущих вкладок и применяем к текущей
  40.                     tabHeadersItems.forEach(function(i) { i.classList.remove('w--current'); });
  41.                     this.classList.add('w--current');
  42.  
  43.                     // Скрываем все элементы и показываем только для текущей вкладки
  44.                     tabBodyItems.forEach(function(i) {
  45.                         if (i.dataset.subcategory !== currentData) {
  46.                             i.style.display = 'none';
  47.                         } else {
  48.                             i.style.display = '';
  49.                         }
  50.                     });
  51.                 });
  52.             });
  53.         }
  54.     });
  55. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement