Запуск Modal із підрахунком активних класів у таблиці
Ви можете застосувати настроювану поведінку на основі вмісту кожної клітинки під час роботи Таблиці HTML. Наприклад, ви можете використовувати певні шаблони або критерії для динамічного призначення класів клітинкам таблиці. В результаті ваш стіл може стати більш корисним і привабливим.
У цьому прикладі клітинки таблиці, які задовольняють певні вимоги, матимуть назву класу активний додано до них. А JavaScript Для цього використовується функція, яка перевіряє кожну комірку, перевіряє її вміст, а потім застосовує клас належним чином. Це продуктивний метод організації окремих комірок відповідно до їхніх даних.
Після застосування активний до підмножини клітинок, підрахунок кількості клітинок, які мають цей клас, може бути частим наступним кроком. Якщо ви бажаєте розпочати подію чи дію, відкриття режиму, який показує підрахунок, може бути дуже корисним.
Цей підручник навчить вас, як використовувати JavaScript для підрахунку кількості клітинок, які мають активний класу та автоматично запускати модаль, яка показує кількість. Використання jQuery, рішення просте, ефективне та просте у реалізації.
Команда | Приклад використання | |
---|---|---|
.each() | Кожен елемент у наборі відповідних елементів повторюється цією функцією jQuery. Він застосовує умовну логіку або класи, перебираючи кожну клітинку таблиці ( | ) in our example. |
addClass() | The selected items receive one or more class names added to them by this jQuery method. The script applies the активний або немає класифікувати клітинки відповідно до їх вмісту. | |
.dialog() | 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. | |
.text() | 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. Сценарій може призначати класи на основі вмісту шляхом ідентифікації шаблонів, таких як цифри, за якими йдуть великі літери або c, за якими йдуть цифри. | |
classList.add() | Ця базова техніка JavaScript надає елементу певний клас. Він функціонує подібно до addClass() jQuery у ванільному рішенні 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. |
Розуміння сценарію: підрахунок клітинок і запуск модального режиму
У першому прикладі сценарію кожна клітинка таблиці повторюється, її вміст оцінюється, і клас призначається залежно від оцінки за допомогою jQuery. Ця функція стала можливою завдяки ітерації кожного з
З RegExp() конструктор, будується регулярний вираз для відповідності чисел, за якими йдуть літери. Ця техніка гарантує, що клітинки з даними, як-от «1A» або «3C», розпізнаються та позначаються поточним класом. Комірка отримує окремий клас під назвою немає якщо вміст збігається з іншим шаблоном, наприклад "c" і число. Це дає змогу більш точно класифікувати дані в таблиці. Крім того, addClass() метод гарантує, що ці класи можна додати до клітинок, не видаляючи класи, які вони вже мають.
Наступним кроком є підрахунок відповідних комірок і ініціювання модальності після того, як усі вони будуть позначені активним класом. Щоразу, коли комірка отримує активний клас, кількість збільшується та зберігається у змінній з назвою activeCount. Кількість кваліфікованих комірок у таблиці має бути встановлено за допомогою цього підрахунку. Використовуючи .dialog() функції з jQuery UI, після завершення підрахунку генерується модальне значення. The autoOpen: правда атрибут дозволяє модальному відкриватися автоматично. Кількість активних клітинок показано всередині модального.
У другому випадку для дублювання ідентичної процедури використовується ванільний JavaScript. querySelectorAll() використовується замість jQuery в цьому підході для вибору всіх комірок таблиці та простого forEach() цикл повторює кожну клітинку. Регулярні вирази використовуються для відповідності вмісту комірки, як і в рішенні jQuery. Якщо збіг виявлено, activeCount оновлюється, а активний клас додається за допомогою classList.add() метод. Зрештою, зміна внутрішнього HTML попередньо визначеного модального елемента в DOM активує модаль. За допомогою цього рішення, яке не покладається на зовнішні бібліотеки, досягається той самий результат, що й у прикладі jQuery.
Підрахунок клітинок із певним класом і запуск модального
Цей метод підраховує елементи, які мають заданий клас, і динамічно призначає їм класи за допомогою 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, це рішення додає клас і підраховує клітинки за допомогою чистий JavaScript.
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
Це Node.js приклад використання Шаблон 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
Робота з JavaScript і Таблиці HTML також передбачає можливість динамічно змінювати класи у відповідь на введення користувача або вміст. Ви можете робити більше, ніж просто рахувати клітинки; ви також можете обробляти введені користувачем дані та миттєво змінювати вміст таблиці. Наприклад, використовуючи такі методи, як removeClass() в jQuery або classList.remove() у ванільному JavaScript ви можете динамічно змінювати клас, виділяти або навіть видаляти клас, коли користувач клацає комірку таблиці. В результаті таблиці стають значно більш інтерактивними, і можлива подальша настройка на основі оновлень вмісту в режимі реального часу.
Таблиця, що відображає дані в реальному часі, де конкретні комірки потрібно візуально відокремити залежно від зміни класу, буде корисним варіантом використання для цього. Зв’язати функції, які викликають ці зміни, просто за допомогою прослуховувачів подій. У JavaScript, наприклад, ви можете використовувати addEventListener() щоб прослуховувати події в окремих клітинках, наприклад клацання або натискання клавіш. Додаткові модифікації класу або навіть оновлення лічильника, що відображає кількість активний клітинок у таблиці може виникнути в результаті цієї взаємодії.
Ви також можете подумати про ситуації, коли комірки повинні оновлюватися автоматично без будь-якого введення з боку користувача. Вміст таблиці можна оновлювати та постійно контролювати за допомогою викликів інтервалу або AJAX. Регулярні вирази та методи, наприклад setInterval() дозволити таблиці автоматично змінювати свої класи та запускати модальний режим, коли досягнуто порогове значення. Тепер таблиці можна використовувати в більш динамічних додатках, таких як інформаційні панелі та налаштування, керовані даними.
Часті запитання щодо обробки класів JavaScript і підрахунку клітинок
- Як у ванільному JavaScript підрахувати компоненти, які належать до певного класу?
- Щоб вибрати кожен елемент із цим класом, використовуйте document.querySelectorAll('.className'); щоб їх порахувати, використовуйте length.
- Виходячи з вмісту клітинки таблиці, як я можу додати до неї клас?
- Ви можете застосувати клас за допомогою classList.add() і перевірте вміст комірки за допомогою textContent або innerText властивості.
- Що відрізняє text() у ванільному JavaScript від textContent в jQuery?
- textContent є рідною властивістю JavaScript, і text() це метод jQuery, який отримує або змінює вміст вибраних елементів.
- Під час підрахунку комірок, які належать до певного класу, як я можу запустити модальний?
- Щоб побудувати модаль у jQuery та зробити його активацію залежною від кількості елементів із певним класом, використовуйте .dialog().
- Як у JavaScript я можу взяти клас з елемента?
- У ванільному JavaScript ви можете використовувати classList.remove('className') щоб видалити клас з елемента.
Заключні думки про підрахунок клітин і модальності
JavaScript або jQuery можна використовувати для керування підрахунком комірок із зазначеним класом, наприклад активний, ефективним способом. Регулярні вирази є корисним інструментом для виявлення шаблонів у вмісті таблиці, що полегшує динамічне призначення класів та інші взаємодії.
Крім того, корисним методом інформування користувачів про статус таблиці є ініціювання режиму на основі кількості цих активних клітинок. The .dialog() функція в jQuery або настроюваний модальний — це два методи, які забезпечують велику гнучкість, коли справа доходить до обробки вмісту таблиці.
Джерела та література
- Інформація щодо динамічного додавання класів і обробки вмісту за допомогою JavaScript і jQuery була отримана з докладного посібника, доступного на Документація jQuery API .
- Інформацію про використання регулярних виразів у JavaScript для маніпулювання вмістом було використано в документації, знайденій на Веб-документи MDN .
- Модальне створення за допомогою методу jQuery UI Dialog і його детальне використання можна вивчити на Документація діалогового вікна jQuery UI .
- Важливість підрахунку елементів із певними класами в JavaScript і практичні приклади можна розглянути в таких статтях, як Посібник FreeCodeCamp JavaScript .