Как использовать определенный класс в JavaScript для подсчета ячеек таблицы

Active

Запуск модального окна с количеством активных классов в таблице

Возможно, вы захотите применить собственное поведение на основе содержимого каждой ячейки при работе с . Например, вы можете использовать определенные шаблоны или критерии для динамического назначения классов ячейкам таблицы. В результате ваша таблица может стать более полезной и привлекательной.

В этом примере ячейки таблицы, удовлетворяющие определенным требованиям, будут иметь класс с именем добавил к ним. А Для этого используется функция, которая исследует каждую ячейку, проверяет ее содержимое, а затем соответствующим образом применяет класс. Это продуктивный метод организации отдельных ячеек в соответствии с их данными.

После применения класс к подмножеству ячеек, подсчет количества ячеек, имеющих этот класс, может быть частым следующим шагом. Если вы хотите начать событие или действие, например, открытие модального окна, показывающего количество, подсчет этих ячеек может быть весьма полезным.

Из этого туториала вы узнаете, как использовать JavaScript для подсчета количества ячеек, содержащих class и автоматически запускать модальное окно, показывающее количество. С использованием , решение является простым, эффективным и простым в реализации.

Команда Пример использования
.each() Каждый элемент в наборе совпадающих элементов обрабатывается этой функцией jQuery. Он применяет условную логику или классы, проходя по каждой ячейке таблицы () in our example.
добавитьКласс() The selected items receive one or more class names added to them by this jQuery method. The script applies the или классировать ячейки в соответствии с их содержимым.
.диалог() Used with jQuery UI to generate a modal dialog. When the script triggers the modal, the autoOpen: true option makes sure it opens automatically and shows the number of active items.
.текст() The text content of the chosen components is retrieved or set using this technique. In this instance, it checks to see if the contents of every ячейка соответствует определенному шаблону.
RegExp() Регулярные выражения создаются с помощью этого конструктора JavaScript. Сценарий может назначать классы на основе содержимого, определяя такие шаблоны, как или .
classList.add() Эта базовая техника JavaScript присваивает элементу определенный класс. Он работает аналогично jQuery addClass() в стандартном решении JavaScript, добавляя или класс в зависимости от условий.
DOMContentLoaded Когда HTML-документ завершает загрузку и анализ, запускается событие DOMContentLoaded. В примере с ванильным JavaScript он гарантирует выполнение сценария после завершения загрузки DOM.
querySelectorAll() Каждый элемент в документе, соответствующий данному селектору CSS, возвращается этой функцией JavaScript. В базовом примере JavaScript он используется для выбора каждого element in the table for further processing.
forEach() An array method in JavaScript that lets you iterate over elements. Here, it's utilized to iterate over every table cell that querySelectorAll() returned and apply the required logic to each one.

Понимание сценария: подсчет ячеек и запуск модального окна

В первом примере скрипта выполняется итерация каждой ячейки таблицы, оценивается ее содержимое и в зависимости от оценки назначается класс с помощью . Эта функция стала возможной благодаря итерации каждого из

элементы таблицы с помощью метод. Регулярные выражения используются для применения двух условных проверок внутри этого цикла. Эти шаблоны определяют, соответствует ли содержимое каждой ячейки определенному формату. Клетка приобретает class, если содержимое соответствует шаблону, например цифре и заглавной букве. Это важно для динамической категоризации ячеек.

С конструктор, создается регулярное выражение для сопоставления чисел, за которыми следуют буквы. Этот метод гарантирует, что ячейки с данными, например «1A» или «3C», распознаются и помечаются текущим классом. Ячейка получает отдельный класс под названием если содержимое соответствует другому шаблону, например, «c», за которым следует число. Это дает возможность более точно классифицировать данные в таблице. Кроме того, Метод гарантирует, что в ячейки можно добавить эти классы, не удаляя классы, которые у них уже могут быть.

Следующий шаг — подсчитать соответствующие ячейки и инициировать модальное окно после того, как все они будут помечены активным классом. Каждый раз, когда ячейка получает активный класс, счетчик увеличивается и сохраняется в переменной с именем . Количество соответствующих ячеек в таблице необходимо определить с помощью этого подсчета. Используя функции из пользовательского интерфейса jQuery, модальное окно генерируется после завершения подсчета. Атрибут позволяет модальному открываться автоматически. Количество активных ячеек отображается внутри модального окна.

Во втором случае для дублирования идентичной процедуры используется ванильный JavaScript. в этом подходе используется вместо jQuery для выбора всех ячеек таблицы и простой цикл перебирает каждую ячейку. Регулярные выражения используются для сопоставления содержимого ячейки, как и в решении jQuery. Если совпадение обнаружено, activeCount обновляется, и активный класс добавляется с помощью метод. В конечном счете, изменение внутреннего HTML предопределенного модального элемента в DOM активирует модальное окно. Тот же результат, что и в примере с jQuery, достигается с помощью этого решения, которое не зависит от внешних библиотек.

Подсчет ячеек с определенным классом и запуск модального окна

Этот метод подсчитывает элементы, имеющие заданный класс, и динамически присваивает им классы, используя . Затем открывается модальное окно.

$(document).ready(function() {
  var activeCount = 0;
  $('td').each(function() {
    var $this = $(this);
    if ($this.text().match(new RegExp(/[0-9][A-Z]/)) !== null) {
      $this.addClass('active');
      activeCount++;
    }
    if ($this.text().match(new RegExp(/c[0-9]/)) !== null) {
      $this.addClass('none');
    }
  });
  // Trigger the modal with the count of 'active' items
  $('#myModal').dialog({ autoOpen: true, modal: true, title: 'Active Count',
      open: function() { $(this).html('Number of active items: ' + activeCount); } });
});

Альтернатива: использование Vanilla JavaScript для подсчета активных ячеек

Вместо того, чтобы полагаться на сторонние библиотеки, такие как jQuery, это решение добавляет класс и подсчитывает ячейки, используя .

document.addEventListener('DOMContentLoaded', function() {
  var cells = document.querySelectorAll('td');
  var activeCount = 0;
  cells.forEach(function(cell) {
    if (/[0-9][A-Z]/.test(cell.textContent)) {
      cell.classList.add('active');
      activeCount++;
    } else if (/c[0-9]/.test(cell.textContent)) {
      cell.classList.add('none');
    }
  });
  // Open the modal to display the count
  var modal = document.getElementById('myModal');
  modal.style.display = 'block';
  modal.innerHTML = 'Number of active items: ' + activeCount;
});

Серверный подход: использование Node.js и Express с шаблонами EJS

Этот пример использования для отображения количества ячеек в модальном окне при подсчете ячеек на стороне сервера.

const express = require('express');
const app = express();
app.set('view engine', 'ejs');
app.get('/', (req, res) => {
  const tableData = [['1A', '2B', '3C'], ['c1', '4D', '5E']];
  let activeCount = 0;
  tableData.forEach(row => {
    row.forEach(cell => {
      if (/[0-9][A-Z]/.test(cell)) {
        activeCount++;
      }
    });
  });
  res.render('index', { activeCount });
});
app.listen(3000, () => console.log('Server running on port 3000'));

Модульное тестирование с помощью Jest для серверного решения

Здесь мы разрабатываем модульные тесты для решения Node.js, используя чтобы активная логика подсчета работала должным образом.

const { countActiveCells } = require('./countActive');
test('counts active cells correctly', () => {
  const tableData = [['1A', '2B', '3C'], ['c1', '4D', '5E']];
  expect(countActiveCells(tableData)).toBe(4);
});
test('returns zero if no active cells', () => {
  const tableData = [['c1', 'c2', 'c3'], ['c4', 'c5', 'c6']];
  expect(countActiveCells(tableData)).toBe(0);
});

Расширение выбора ячеек и обработки классов в JavaScript

Работа с и также включает в себя возможность динамически изменять классы в ответ на ввод пользователя или контент. Вы можете делать больше, чем просто подсчитывать ячейки; вы также можете обрабатывать вводимые пользователем данные и мгновенно изменять содержимое таблицы. Например, используя такие методы, как в jQuery или classList.remove() в стандартном JavaScript вы можете динамически изменять класс, выделять или даже удалять класс, когда пользователь нажимает на ячейку таблицы. В результате таблицы становятся значительно более интерактивными, и возможна дальнейшая настройка на основе обновлений содержимого в режиме реального времени.

Полезным вариантом использования для этого может быть таблица, отображающая данные в реальном времени, в которой определенные ячейки необходимо визуально разделить в зависимости от изменения класса. Связать функции, вызывающие эти изменения, просто с помощью прослушивателей событий. Например, в JavaScript вы можете использовать для прослушивания событий в определенных ячейках, таких как щелчки или нажатия клавиш. Дополнительные модификации классов или даже обновления счетчика, отражающего количество ячейки в таблице могут возникнуть в результате этого взаимодействия.

Вы также можете подумать о ситуациях, в которых ячейки должны обновляться автоматически без участия пользователя. Содержимое таблицы можно постоянно обновлять и отслеживать с помощью интервалов или вызовов AJAX. Регулярные выражения и методы, такие как разрешить таблице автоматически менять свои классы и запускать модальное окно при достижении порогового значения. Таблицы теперь можно использовать в более динамичных приложениях, таких как информационные панели и настройки, управляемые данными.

  1. Как в ванильном JavaScript подсчитать компоненты, принадлежащие определенному классу?
  2. Чтобы выбрать каждый элемент этого класса, используйте ; чтобы их посчитать, используйте .
  3. Как добавить к ней класс, исходя из содержимого ячейки таблицы?
  4. Вы можете применить класс, используя и проверьте содержимое ячейки, используя или характеристики.
  5. Что отличает на ванильном JavaScript из в jQuery?
  6. является собственным свойством JavaScript, и — это метод jQuery, который извлекает или изменяет содержимое выбранных элементов.
  7. Как при подсчете ячеек, принадлежащих определенному классу, запустить модальное окно?
  8. Чтобы создать модальное окно в jQuery и настроить его срабатывание в зависимости от количества элементов определенного класса, используйте .
  9. Как в JavaScript можно извлечь класс из элемента?
  10. В ванильном JavaScript вы можете использовать удалить класс из элемента.

JavaScript или jQuery можно использовать для управления счетными ячейками с указанным классом, например , эффективным образом. Регулярные выражения — полезный инструмент для выявления шаблонов в содержимом таблицы, который облегчает динамическое назначение классов и другие взаимодействия.

Кроме того, полезным методом информирования пользователей о статусе таблицы является запуск модального окна в зависимости от количества этих активных ячеек. Функция в jQuery или пользовательское модальное окно — это два метода, которые обеспечивают большую гибкость при обработке содержимого таблицы.

  1. Информация о динамическом добавлении классов и обработке контента с помощью JavaScript и jQuery была получена из подробного руководства, доступного по адресу Документация по API jQuery .
  2. Информация об использовании регулярных выражений в JavaScript для управления содержимым взята из документации, найденной по адресу Веб-документы MDN .
  3. Модальное создание с использованием метода jQuery UI Dialog и его подробное использование можно изучить на странице Документация по диалоговому окну пользовательского интерфейса jQuery .
  4. Важность подсчета элементов с конкретными классами в JavaScript и практические примеры можно рассмотреть в таких статьях, как Руководство по JavaScript FreeCodeCamp .