Покретање модала са активним бројем класа у табели
Можда ћете желети да примените прилагођено понашање на основу садржаја сваке ћелије када радите са . На пример, можете користити специфичне обрасце или критеријуме да динамички додељујете класе ћелијама табеле. Ваш сто може постати кориснији и занимљивији као резултат.
У овом примеру ћелије табеле које задовољавају одређене захтеве имаће класу са именом додао им се. А За ово се користи функција која испитује сваку ћелију, проверава њен садржај, а затим на одговарајући начин примењује класу. То је продуктиван метод организовања одређених ћелија према њиховим подацима.
Након примене класе на подскуп ћелија, бројање броја ћелија које имају ову класу може бити чест следећи корак. Ако желите да започнете догађај или радњу, такво отварање модала који приказује број, бројање ових ћелија може бити од велике помоћи.
Овај водич ће вас научити како да користите ЈаваСцрипт за пребројавање броја ћелија које имају класе и да аутоматски покрене модал који приказује број. Коришћење , решење је једноставно, ефикасно и једноставно за имплементацију.
Цомманд | Пример употребе | |
---|---|---|
.each() | Сваки елемент у скупу подударних елемената се понавља помоћу ове јКуери функције. Примењује условну логику или класе итерацијом преко сваке ћелије табеле ( | ) 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() | Регуларни изрази се праве помоћу овог ЈаваСцрипт конструктора. Скрипта може да додељује класе на основу садржаја идентификацијом образаца као што су или . | |
classList.add() | Ова основна ЈаваСцрипт техника даје елементу одређену класу. Функционише слично као јКуери аддЦласс() у ванилла ЈаваСцрипт решењу, додајући или класа у зависности од услова. | |
DOMContentLoaded | Када се ХТМЛ документ заврши са учитавањем и рашчлањивањем, покреће се догађај ДОМЦонтентЛоадед. У примеру ванилла ЈаваСцрипт-а, он обезбеђује да се скрипта изврши након што ДОМ заврши учитавање. | |
querySelectorAll() | Сваки елемент у документу који одговара датом ЦСС селектору враћа ова ЈаваСцрипт функција. У основном примеру ЈаваСцрипта, користи се за одабир сваког | element in the table for further processing. |
форЕацх() | 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. |
Разумевање скрипте: бројање ћелија и покретање модала
У првом примеру скрипте, свака ћелија табеле се понавља, њен садржај се процењује и класа се додељује у зависности од евалуације помоћу . Ова карактеристика је омогућена итерацијом кроз сваки од
Са конструктора, конструише се регуларни израз за подударање бројева праћених словима. Ова техника осигурава да ћелије са подацима, као што су "1А" или "3Ц", буду препознате и означене тренутном класом. Ћелија добија посебну класу тзв ако се садржај подудара са другачијим шаблоном, као што је „ц“ праћено бројем. Ово омогућава прецизнију класификацију података у табели. Штавише, тхе метода гарантује да ћелије могу да додају ове класе без брисања класа које можда већ имају.
Следећи корак је да пребројите одговарајуће ћелије и покренете модалитет након што су све означене активном класом. Сваки пут када ћелија добије активну класу, број се повећава и чува у променљивој под називом . Број квалификованих ћелија у табели мора се утврдити коришћењем овог броја. Коришћењем функција из јКуери корисничког интерфејса, модал се генерише када се бројање заврши. Тхе атрибут омогућава да се модал аутоматски отвори. Број активних ћелија је приказан унутар модала.
У другом случају, ванилла ЈаваСцрипт се користи за дуплирање идентичне процедуре. се користи уместо јКуери-ја у овом приступу за одабир свих ћелија табеле, и то једноставно петља се понавља кроз сваку ћелију. Регуларни изрази се користе за усклађивање са садржајем ћелије, баш као у јКуери решењу. Ако се открије подударање, ацтивеЦоунт се ажурира и активна класа се додаје помоћу методом. На крају, промена интерног ХТМЛ-а унапред дефинисаног модалног елемента у ДОМ-у активира модални. Исти исход као у јКуери примеру се постиже коришћењем овог решења, које се не ослања на спољне библиотеке.
Бројање ћелија са одређеном класом и покретање модала
Овај метод броји ставке које имају дату класу и динамички им додељује класе користећи . Затим отвара модални прозор.
$(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); } });
});
Алтернатива: Коришћење ванилла ЈаваСцрипт-а за бројање активних ћелија
Уместо да се ослања на библиотеке трећих страна као што је јКуери, ово решење додаје класу и броји ћелије користећи .
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;
});
Позадински приступ: Коришћење Ноде.јс и Екпресс-а са ЕЈС шаблоном
Ово пример користи да прикажете број ћелија у модалном прозору док бројите ћелије на страни сервера.
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'));
Јединично тестирање са Јест фор Бацкенд решењем
Овде развијамо јединичне тестове за решење Ноде.јс користећи да би логика активног бројања функционисала како је предвиђено.
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);
});
Проширивање избора ћелије и руковања класама у ЈаваСцрипт-у
Рад са и такође укључује могућност динамичке модификације класа као одговор на кориснички унос или садржај. Можете учинити више од пуког бројања ћелија; такође можете руковати уносима корисника и тренутно променити садржај табеле. На пример, коришћењем метода као што су у јКуери или classList.remove() у ванилла ЈаваСцрипт-у, можете динамички модификовати класу, истаћи или чак уклонити класу када корисник кликне на ћелију табеле. Као резултат тога, табеле постају знатно интерактивније, а могуће је даље прилагођавање на основу ажурирања садржаја у реалном времену.
Табела која приказује податке у реалном времену где одређене ћелије треба да буду визуелно одвојене у зависности од промене класе била би користан случај употребе за ово. Лако је повезати функције које изазивају ове модификације коришћењем слушалаца догађаја. У ЈаваСцрипт-у, на пример, можете да користите да слушате догађаје на одређеним ћелијама, као што су кликови или притисци на тастере. Додатне модификације класе или чак ажурирања бројача који одражава број ћелије у табели могу бити резултат ове интеракције.
Такође можете размишљати о ситуацијама у којима би ћелије требало да се ажурирају аутоматски без икаквог уноса од стране корисника. Садржај табеле се може ажурирати и континуирано пратити путем интервала или АЈАКС позива. Регуларни изрази и методе као нпр дозволи табели да аутоматски мења своје класе и покрене модални када се достигне праг. Табеле се сада могу користити у динамичнијим апликацијама, као што су контролне табле и подешавања заснована на подацима.
- У ванилла ЈаваСцрипт-у, како могу да пребројим компоненте које припадају одређеној класи?
- Да бисте изабрали сваки елемент са том класом, користите ; да их пребројите, употребите .
- На основу садржаја ћелије табеле, како да јој додам класу?
- Можете применити класу користећи и прегледати садржај ћелије користећи или својства.
- Оно што разликује у ванилла ЈаваСцрипт-у из у јКуери-ју?
- је изворно својство ЈаваСцрипта, и је јКуери метод који преузима или мења садржај изабраних елемената.
- Када бројим ћелије које припадају одређеној класи, како могу да покренем модални?
- Да бисте конструисали модал у јКуери-ју и да бисте га покренули у зависности од броја ставки са одређеном класом, користите .
- У ЈаваСцрипт-у, како могу да извадим класу из елемента?
- У ванилла ЈаваСцрипт-у можете користити да уклоните класу из елемента.
ЈаваСцрипт или јКуери се могу користити за управљање ћелијама за бројање са одређеном класом, нпр , на ефикасан начин. Регуларни изрази су користан алат за идентификацију образаца у садржају табеле, што олакшава динамичко додељивање класа и друге интеракције.
Штавише, користан метод информисања корисника о статусу табеле је покретање модалног на основу броја ових активних ћелија. Тхе функција у јКуери-ју или прилагођени модал су две методе које пружају велику свестраност када је у питању руковање садржајем табеле.
- Информације о динамичком додавању класа и руковању садржајем користећи ЈаваСцрипт и јКуери су добијене из детаљног водича доступног на јКуери АПИ документација .
- Увид у коришћење регуларних израза у ЈаваСцрипт-у за манипулисање садржајем је референциран из документације која се налази на МДН веб документи .
- Модално креирање користећи јКуери УИ Диалог метод и његову детаљну употребу може се истражити на Документација дијалога јКуери корисничког интерфејса .
- Важност бројања елемената са специфичним класама у ЈаваСцрипт-у и практичним примерима може се прегледати у чланцима попут ФрееЦодеЦамп ЈаваСцрипт водич .