Kako koristiti određenu klasu u JavaScriptu za brojanje ćelija tablice

Active

Pokretanje modala s aktivnim brojanjem klasa u tablici

Možda ćete htjeti primijeniti prilagođeno ponašanje na temelju sadržaja svake ćelije pri radu . Na primjer, možete koristiti određene uzorke ili kriterije za dinamičko dodjeljivanje klasa ćelijama tablice. Vaš bi stol mogao postati korisniji i privlačniji kao rezultat.

U ovom primjeru, ćelije tablice koje zadovoljavaju određene zahtjeve imat će imenovanu klasu dodao im. A Za to se koristi funkcija koja ispituje svaku ćeliju, provjerava njezin sadržaj i zatim na odgovarajući način primjenjuje klasu. To je produktivna metoda organiziranja određenih stanica prema njihovim podacima.

Nakon primjene klase u podskup ćelija, brojanje ćelija koje imaju ovu klasu mogao bi biti čest sljedeći korak. Ako želite započeti događaj ili radnju, takvo otvaranje modala koji prikazuje brojanje, brojanje ovih ćelija može biti od velike pomoći.

Ovaj vodič će vas naučiti kako koristiti JavaScript za brojanje ćelija koje imaju klase i za automatsko pokretanje modala koji prikazuje broj. Korištenje , rješenje je jednostavno, učinkovito i jednostavno za implementaciju.

Naredba Primjer upotrebe
.each() Ova jQuery funkcija ponavlja svaki element u skupu podudarnih elemenata. Primjenjuje uvjetnu logiku ili klase ponavljanjem preko svake ćelije tablice () in our example.
addClass() The selected items receive one or more class names added to them by this jQuery method. The script applies the ili klase u ćelije prema njihovom sadržaju.
.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.
.tekst() 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 ćelija odgovara određenom uzorku.
RegExp() Pomoću ovog JavaScript konstruktora izrađuju se regularni izrazi. Skripta može dodijeliti klase na temelju sadržaja identificirajući uzorke kao što su ili .
classList.add() Ova osnovna JavaScript tehnika daje elementu određenu klasu. Funkcionira slično jQuery addClass() u vanilla JavaScript rješenju, dodajući ili razreda ovisno o uvjetima.
DOMContentLoaded Kada HTML dokument završi s učitavanjem i raščlanjivanjem, pokreće se događaj DOMContentLoaded. U vanilla JavaScript primjeru, osigurava da se skripta izvrši nakon što se DOM završi s učitavanjem.
querySelectorAll() Svaki element u dokumentu koji odgovara danom CSS selektoru vraća ova JavaScript funkcija. U osnovnom JavaScript primjeru koristi se za odabir svakog element in the table for further processing.
zaSvaki() 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.

Razumijevanje skripte: brojanje stanica i pokretanje modala

U prvom primjeru skripte, svaka ćelija tablice se ponavlja, njen sadržaj se procjenjuje, a klasa se dodjeljuje ovisno o procjeni pomoću . Ova je značajka omogućena ponavljanjem kroz svaki od

stavke u tablici pomoću metoda. Regularni izrazi koriste se za primjenu dvije uvjetne provjere unutar ove petlje. Ovi uzorci utvrđuju pridržava li se sadržaj svake ćelije određeni format. Stanica dobiva klasa ako sadržaj slijedi obrazac, kao što je broj i veliko slovo. Ovo je bitno za dinamičku kategorizaciju stanica.

s konstruktor, konstruira se regularni izraz za podudaranje brojeva nakon kojih slijede slova. Ova tehnika osigurava da ćelije s podacima, kao što su "1A" ili "3C", budu prepoznate i označene trenutnom klasom. Ćelija dobiva zasebnu klasu tzv ako sadržaj odgovara drugom uzorku, kao što je "c" iza kojeg slijedi broj. To omogućuje precizniju klasifikaciju podataka u tablici. Nadalje, metoda jamči da ćelije mogu imati te klase dodane bez brisanja klasa koje možda već imaju.

Sljedeći korak je brojanje odgovarajućih ćelija i pokretanje modalnog nakon što su sve označene aktivnom klasom. Svaki put kada ćelija dobije aktivnu klasu, broj se povećava i sprema u varijablu pod nazivom . Broj kvalificirajućih ćelija u tablici mora se utvrditi pomoću ovog brojanja. Korištenje funkcija iz jQuery UI, modal se generira kada se brojanje završi. The atribut omogućuje automatsko otvaranje modala. Broj aktivnih ćelija prikazan je unutar modala.

U drugom slučaju, vanilla JavaScript se koristi za dupliciranje identične procedure. koristi se umjesto jQuery u ovom pristupu za odabir svih ćelija tablice i jednostavan petlja ponavlja kroz svaku ćeliju. Regularni izrazi koriste se za usklađivanje sadržaja ćelije, baš kao u rješenju jQuery. Ako se otkrije podudaranje, activeCount se ažurira i aktivna klasa se dodaje pomoću metoda. U konačnici, mijenjanje unutarnjeg HTML-a unaprijed definiranog modalnog elementa u DOM-u aktivira modal. Isti ishod kao u jQuery primjeru postiže se korištenjem ovog rješenja, koje se ne oslanja na vanjske knjižnice.

Brojanje ćelija s određenom klasom i pokretanje modala

Ova metoda broji stavke koje imaju danu klasu i dinamički im dodjeljuje klase pomoću . Zatim otvara modalni prozor.

$(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: korištenje Vanilla JavaScripta za brojanje aktivnih ćelija

Umjesto da se oslanja na biblioteke trećih strana kao što je jQuery, ovo rješenje dodaje klasu i broji ćelije pomoću .

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

Pozadinski pristup: korištenje Node.js i Express s EJS predlošcima

Ovaj primjer koristi za prikaz broja ćelija u modalnom prozoru dok brojite ćelije na strani poslužitelja.

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

Jedinično testiranje s Jestom za pozadinsko rješenje

Ovdje razvijamo jedinične testove za korištenje rješenja Node.js kako bi logika aktivnog brojanja funkcionirala kako je predviđeno.

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

Proširenje odabira ćelija i rukovanja klasama u JavaScriptu

Rad sa i također uključuje mogućnost dinamičke izmjene klasa kao odgovor na korisnički unos ili sadržaj. Možete učiniti više od pukog brojanja stanica; također možete rukovati korisničkim unosima i trenutno mijenjati sadržaj tablice. Na primjer, koristeći metode poput u jQuery ili classList.remove() u vanilla JavaScriptu možete dinamički modificirati klasu, istaknuti ili čak ukloniti klasu kada korisnik klikne na ćeliju tablice. Tablice zbog toga postaju znatno interaktivnije, a moguća je i daljnja prilagodba na temelju ažuriranja sadržaja u stvarnom vremenu.

Tablica koja prikazuje podatke u stvarnom vremenu gdje određene ćelije trebaju biti vizualno odvojene ovisno o promjeni klase bila bi koristan slučaj za ovo. Jednostavno je povezati funkcije koje uzrokuju ove izmjene pomoću slušatelja događaja. U JavaScriptu, na primjer, možete koristiti za slušanje događaja na određenim ćelijama, kao što su klikovi ili pritisci tipki. Dodatne izmjene klase ili čak ažuriranja brojača koji odražava broj ćelije u tablici mogu proizaći iz ove interakcije.

Također možete razmišljati o situacijama u kojima bi se ćelije trebale automatski ažurirati bez ikakvog unosa od strane korisnika. Sadržaj tablice može se ažurirati i kontinuirano pratiti putem intervala ili AJAX poziva. Regularni izrazi i metode kao što su dopustite tablici da automatski promijeni svoje klase i pokrene modal kada se dosegne prag. Tablice se sada mogu koristiti u dinamičnijim aplikacijama, poput nadzornih ploča i postavki koje se temelje na podacima.

  1. U vanilla JavaScriptu, kako mogu prebrojati komponente koje pripadaju određenoj klasi?
  2. Za odabir svakog elementa s tom klasom, koristite ; prebrojati ih, koristiti .
  3. Na temelju sadržaja ćelije tablice, kako joj mogu dodati klasu?
  4. Klasu možete primijeniti pomoću i pregledajte sadržaj ćelije pomoću ili svojstva.
  5. Ono što razlikuje u vanilla JavaScript iz u jQuery?
  6. izvorno je svojstvo JavaScripta i je jQuery metoda koja dohvaća ili mijenja sadržaj odabranih elemenata.
  7. Kada brojim ćelije koje pripadaju određenoj klasi, kako mogu pokrenuti modal?
  8. Da biste konstruirali modal u jQueryju i pokrenuli ga ovisno o broju stavki s određenom klasom, upotrijebite .
  9. U JavaScriptu, kako mogu uzeti klasu iz elementa?
  10. U vanilla JavaScriptu možete koristiti za uklanjanje klase iz elementa.

JavaScript ili jQuery mogu se koristiti za upravljanje brojanjem ćelija s određenom klasom, kao što je , na učinkovit način. Regularni izrazi su koristan alat za prepoznavanje uzoraka u sadržaju tablice, što olakšava dinamičke dodjele klasa i druge interakcije.

Nadalje, korisna metoda informiranja korisnika o statusu tablice je pokretanje modala na temelju broja tih aktivnih ćelija. The funkcija u jQueryju ili prilagođeni modal dvije su metode koje pružaju veliku svestranost kada je riječ o rukovanju sadržajem tablice.

  1. Informacije o dinamičkom dodavanju klasa i rukovanju sadržajem pomoću JavaScripta i jQueryja dobivene su iz detaljnog vodiča dostupnog na jQuery API dokumentacija .
  2. Uvidi u korištenje regularnih izraza u JavaScriptu za manipuliranje sadržajem navedeni su u dokumentaciji koja se nalazi na MDN web dokumenti .
  3. Izrada modala korištenjem metode jQuery UI Dialog i njezina detaljna uporaba mogu se istražiti na jQuery UI dijaloška dokumentacija .
  4. Važnost brojanja elemenata s određenim klasama u JavaScriptu i praktični primjeri mogu se pregledati u člancima poput FreeCodeCamp JavaScript vodič .