Jak používat konkrétní třídu v JavaScriptu k počítání buněk tabulky

Active

Spuštění modu s aktivním počtem tříd v tabulce

Při práci můžete chtít použít vlastní chování založené na obsahu každé buňky . Můžete například použít specifické vzory nebo kritéria k dynamickému přiřazení tříd k buňkám tabulky. Váš stůl se tak může stát užitečnější a poutavější.

V tomto příkladu budou mít buňky tabulky, které splňují určité požadavky, pojmenovanou třídu přidáno k nim. A K tomu se používá funkce, která prozkoumá každou buňku, ověří její obsah a poté příslušnou třídu použije. Je to produktivní metoda organizace jednotlivých buněk podle jejich dat.

Po aplikaci třídy na podmnožinu buněk, počítání počtu buněk, které mají tuto třídu, by mohlo být častým dalším krokem. Pokud chcete spustit událost nebo akci, jako je otevření modálu, který ukazuje počet, počítání těchto buněk může být docela užitečné.

Tento tutoriál vás naučí, jak pomocí JavaScriptu spočítat počet buněk, které mají třídy a automaticky spustit modal, který zobrazuje počet. Použití , řešení je přímočaré, efektivní a snadno implementovatelné.

Příkaz Příklad použití
.each() Každý prvek v sadě odpovídajících prvků je iterován touto funkcí jQuery. Aplikuje podmíněnou logiku nebo třídy iterací přes každou buňku tabulky () in our example.
addClass() The selected items receive one or more class names added to them by this jQuery method. The script applies the nebo třídy do buněk podle jejich obsahu.
.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 buňka odpovídá konkrétnímu vzoru.
RegExp() Regulární výrazy se vytvářejí pomocí tohoto konstruktoru JavaScriptu. Skript může přiřazovat třídy na základě obsahu identifikací vzorů, jako je např nebo .
classList.add() Tato základní technika JavaScriptu dává prvku konkrétní třídu. Funguje podobně jako addClass() jQuery v řešení vanilla JavaScript a přidává nebo třídy v závislosti na podmínkách.
DOMContentLoaded Po dokončení načítání a analýzy dokumentu HTML se spustí událost DOMContentLoaded. V příkladu vanilkového JavaScriptu zajišťuje, že se skript spustí po dokončení načítání modelu DOM.
querySelectorAll() Tato funkce JavaScriptu vrací každý prvek v dokumentu, který odpovídá danému selektoru CSS. V základním příkladu JavaScriptu se používá k výběru každého 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.

Pochopení skriptu: Počítání buněk a spouštění modalu

V prvním příkladu skriptu se každá buňka tabulky iteruje, vyhodnotí se její obsah a v závislosti na vyhodnocení se přiřadí třída . Tato funkce je umožněna procházením každého z nich

položky v tabulce pomocí metoda. Regulární výrazy se používají k aplikaci dvou podmíněných kontrol uvnitř této smyčky. Tyto vzory zjišťují, zda obsah každé buňky odpovídá určitému formátu. Buňka získává třídy, pokud se obsah řídí vzorem, jako je číslo a velké písmeno. To je nezbytné, aby byly buňky dynamicky kategorizovány.

s konstruktoru, je vytvořen regulární výraz pro párování čísel následovaných písmeny. Tato technika zajišťuje, že buňky s daty, například "1A" nebo "3C", jsou rozpoznány a označeny aktuální třídou. Buňka obdrží samostatnou třídu s názvem pokud se obsah shoduje s jiným vzorem, takové "c" následované číslem. To umožňuje přesněji klasifikovat data v tabulce. Kromě toho, metoda zaručuje, že buňky mohou mít tyto třídy přidány, aniž by byly odstraněny všechny třídy, které již mohou mít.

Dalším krokem je spočítat příslušné buňky a spustit modal poté, co byly všechny označeny aktivní třídou. Pokaždé, když buňka získá aktivní třídu, počet se zvýší a uloží do proměnné s názvem . Počet kvalifikačních buněk v tabulce musí být zjištěn pomocí tohoto počtu. Pomocí z uživatelského rozhraní jQuery se po dokončení počítání vygeneruje modal. The atribut umožňuje automatické otevření modu. Počet aktivních buněk je zobrazen uvnitř modálu.

V druhém případě se k duplikování identického postupu používá vanilkový JavaScript. se v tomto přístupu používá místo jQuery k výběru všech buněk tabulky a je to jednoduché smyčka prochází každou buňkou. Regulární výrazy se používají k tomu, aby odpovídaly obsahu buňky, stejně jako v řešení jQuery. Pokud je nalezena shoda, activeCount je aktualizován a aktivní třída je přidána pomocí metoda. Nakonec změna interního HTML předdefinovaného modálního prvku v DOM aktivuje modální. Stejného výsledku jako v příkladu jQuery je dosaženo použitím tohoto řešení, které se nespoléhá na externí knihovny.

Počítání buněk se specifickou třídou a spouštění modalu

Tato metoda počítá položky, které mají danou třídu, a dynamicky jim přiřazuje třídy pomocí . Poté otevře modální okno.

$(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); } });
});

Alternativa: Použití Vanilla JavaScript k počítání aktivních buněk

Namísto spoléhání se na knihovny třetích stran, jako je jQuery, toto řešení přidává třídu a počítá buňky pomocí .

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;
});

Backendový přístup: Použití Node.js a Express s EJS Templating

Tento příklad použití k vykreslení počtu buněk v modálním okně při počítání buněk na straně serveru.

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'));

Testování jednotek s Jest for Backend Solution

Zde vyvíjíme testy jednotek pro řešení Node.js pomocí aby aktivní logika počítání fungovala tak, jak bylo zamýšleno.

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);
});

Rozšíření o výběr buněk a zpracování tříd v JavaScriptu

Práce s a zahrnuje také schopnost dynamicky upravovat třídy v reakci na uživatelský vstup nebo obsah. Můžete dělat víc než jen počítat buňky; můžete také zpracovávat uživatelské vstupy a okamžitě měnit obsah tabulky. Například pomocí metod jako v jQuery nebo classList.remove() ve vanilla JavaScript můžete třídu dynamicky upravit, zvýraznit nebo dokonce odstranit, když uživatel klikne na buňku tabulky. Tabulky jsou díky tomu podstatně interaktivnější a je možné další přizpůsobení založené na aktualizacích obsahu v reálném čase.

Tabulka zobrazující data v reálném čase, kde je třeba konkrétní buňky vizuálně oddělit v závislosti na změně třídy, by byla užitečným případem použití. Je jednoduché svázat funkce, které způsobují tyto úpravy, pomocí posluchačů událostí. V JavaScriptu můžete například použít poslouchat události v konkrétních buňkách, jako jsou kliknutí nebo stisknutí kláves. Další úpravy třídy nebo dokonce aktualizace počítadla odrážejícího počet buňky v tabulce mohou být výsledkem této interakce.

Můžete také přemýšlet o situacích, ve kterých by se buňky měly aktualizovat automaticky bez jakéhokoli zásahu uživatele. Obsah tabulky lze průběžně aktualizovat a monitorovat prostřednictvím intervalového volání nebo volání AJAX. Regulární výrazy a metody jako např umožnit tabulce automaticky změnit své třídy a spustit modal, když je dosaženo prahové hodnoty. Tabulky lze nyní používat v dynamičtějších aplikacích, jako jsou řídicí panely a nastavení založená na datech.

  1. Jak mohu ve vanilla JavaScript spočítat komponenty, které patří do konkrétní třídy?
  2. Chcete-li vybrat každý prvek s touto třídou, použijte ; spočítat je, použít .
  3. Jak do ní mohu na základě obsahu buňky tabulky přidat třídu?
  4. Třídu můžete použít pomocí a zkontrolovat obsah buňky pomocí nebo vlastnosti.
  5. Co odlišuje ve vanilla JavaScript od v jQuery?
  6. je nativní vlastnost JavaScriptu a je metoda jQuery, která načítá nebo upravuje obsah vybraných prvků.
  7. Jak mohu při počítání buněk, které patří do určité třídy, spustit modal?
  8. Chcete-li vytvořit modal v jQuery a nechat jej spouštět v závislosti na počtu položek s konkrétní třídou, použijte .
  9. Jak mohu v JavaScriptu odebrat třídu z prvku?
  10. Ve vanilkovém JavaScriptu můžete použít k odstranění třídy z prvku.

JavaScript nebo jQuery lze použít ke správě počítání buněk se zadanou třídou, např , efektivním způsobem. Regulární výrazy jsou užitečným nástrojem pro identifikaci vzorů v obsahu tabulky, což usnadňuje dynamické přiřazení tříd a další interakce.

Kromě toho je užitečnou metodou informování uživatelů o stavu tabulky spuštění modu na základě počtu těchto aktivních buněk. The funkce v jQuery nebo vlastní modal jsou dvě metody, které poskytují velkou míru všestrannosti, pokud jde o manipulaci s obsahem tabulek.

  1. Informace o dynamickém přidávání tříd a zacházení s obsahem pomocí JavaScriptu a jQuery byly získány z podrobné příručky dostupné na adrese Dokumentace jQuery API .
  2. Na informace o používání regulárních výrazů v JavaScriptu k manipulaci s obsahem se odkazuje v dokumentaci na adrese Webové dokumenty MDN .
  3. Vytvoření modu pomocí metody jQuery UI Dialog a jeho podrobné použití lze prozkoumat na Dokumentace dialogu uživatelského rozhraní jQuery .
  4. Důležitost počítání prvků s konkrétními třídami v JavaScriptu a praktické příklady lze přezkoumat v článcích jako Průvodce JavaScriptem FreeCodeCamp .