Egy adott osztály használata a JavaScriptben a táblázatcellák számlálásához

Active

Modal aktiválása aktív osztályszámmal egy táblázatban

Érdemes lehet egyéni viselkedést alkalmazni az egyes cellák tartalma alapján, amikor dolgozik . Használhat például meghatározott mintákat vagy feltételeket az osztályok dinamikus hozzárendeléséhez a táblázatcellákhoz. Ennek eredményeként az asztal hasznosabbá és vonzóbbá válhat.

Ebben a példában azoknak a táblázatcelláknak, amelyek megfelelnek bizonyos követelményeknek, egy osztály neve lesz hozzájuk. A Ehhez olyan függvényt használunk, amely megvizsgálja az egyes cellákat, ellenőrzi azok tartalmát, majd megfelelően alkalmazza az osztályt. Ez egy produktív módszer bizonyos sejtek adataik szerinti rendszerezésére.

Alkalmazása után a osztályt a cellák egy részhalmazához, az ilyen osztályt tartalmazó cellák számának megszámlálása gyakori következő lépés lehet. Ha eseményt vagy akciót szeretne elindítani, akkor egy ilyen modális megnyitása, amely a számlálást mutatja, ezeknek a celláknak a megszámlálása nagyon hasznos lehet.

Ez az oktatóanyag megtanítja Önnek, hogyan használhatja a JavaScriptet a következővel rendelkező cellák számának megszámlálásához osztályba, és automatikusan elindít egy modált, amely a számlálást mutatja. Használata , a megoldás egyszerű, hatékony és egyszerűen megvalósítható.

Parancs Használati példa
.each() Ez a jQuery függvény az egyező elemek halmazának minden elemét megismétli. Feltételes logikát vagy osztályokat alkalmaz az egyes táblacellákon történő iterációval () in our example.
addClass() The selected items receive one or more class names added to them by this jQuery method. The script applies the vagy osztályt cellákba tartalmuk szerint.
.párbeszéd() 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.
.szöveg() 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 egy adott mintának felel meg.
RegExp() A reguláris kifejezések ezzel a JavaScript-konstruktorral készülnek. A szkript a tartalom alapján osztályokat rendelhet hozzá olyan minták azonosításával, mint pl vagy .
classList.add() Ez az alapvető JavaScript technika egy adott osztályt ad egy elemnek. Hasonlóan működik, mint a jQuery addClass() a vanilla JavaScript megoldásában, hozzáadva a vagy osztály a körülményektől függően.
DOMContentLoaded Amikor a HTML-dokumentum betöltése és elemzése befejeződött, a DOMContentLoaded esemény aktiválódik. A vanília JavaScript-példában gondoskodik arról, hogy a szkript a DOM betöltése után lefusson.
querySelectorAll() Ez a JavaScript-függvény a dokumentumban minden olyan elemet visszaad, amely megfelel az adott CSS-választónak. Az alap JavaScript-példában az összes kiválasztására használják 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.

A forgatókönyv értelmezése: Cellák számlálása és egy modál aktiválása

Az első szkriptpéldában minden táblacella ismétlődik, tartalma kiértékelődik, és a kiértékeléstől függően osztály kerül hozzárendelésre . Ez a funkció az egyes

elemekkel a táblázatban módszer. A reguláris kifejezések két feltételes ellenőrzés alkalmazására szolgálnak ezen a cikluson belül. Ezek a minták megállapítják, hogy az egyes cellák tartalma megfelel-e egy adott formátumnak. A sejt elnyeri a osztályba, ha a tartalom mintát követ, például számot és nagybetűt. A cellák dinamikus kategorizálásához ez elengedhetetlen.

A konstruktor, akkor egy reguláris kifejezés jön létre a számok és a betűk közötti egyező kifejezésekhez. Ez a technika biztosítja, hogy az adatokat tartalmazó cellák, például „1A” vagy „3C”, felismerésre és az aktuális osztályra címkézve legyenek. A cella egy külön osztályt kap, az úgynevezett ha a tartalom egy másik mintára egyezik, akkor a „c” jelet egy szám követi. Ez lehetővé teszi az adatok pontosabb osztályozását a táblázatban. Továbbá a A metódus garantálja, hogy a cellák hozzáadhatják ezeket az osztályokat anélkül, hogy törölnék a már meglévő osztályokat.

A következő lépés a megfelelő cellák megszámlálása és a modális kezdeményezése, miután mindegyiket megcímkézték az aktív osztállyal. Minden alkalommal, amikor egy cella megkapja az aktív osztályt, a szám növekszik, és elmentődik egy nevű változóba . A táblázatban szereplő minősítő cellák számát ezzel a számmal kell megállapítani. A függvényt a jQuery UI-ból, egy modális generálódik, amikor a számlálás befejeződött. A attribútum lehetővé teszi a modális automatikus megnyitását. Az aktív cellák száma a modális belsejében látható.

A második esetben a vanília JavaScriptet használják az azonos eljárás megkettőzésére. Ebben a megközelítésben a jQuery helyett az összes táblázatcella kijelölésére szolgál, és egy egyszerű ciklus iterál minden cellán keresztül. A cellatartalomhoz reguláris kifejezéseket használnak, akárcsak a jQuery megoldásban. Ha egyezést észlel, az activeCount frissül, és az aktív osztály hozzáadódik a következővel módszer. Végső soron egy előre meghatározott modális elem belső HTML-kódjának megváltoztatása a DOM-ban aktiválja a modált. A jQuery példával megegyező eredmény érhető el ezzel a megoldással, amely nem támaszkodik külső könyvtárakra.

Adott osztályú cellák számlálása és modális kiváltása

Ez a metódus megszámolja az adott osztályú elemeket, és dinamikusan osztályokat rendel hozzájuk a segítségével . Ezután megnyit egy modális ablakot.

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

Alternatív megoldás: Vanilla JavaScript használata az aktív sejtek megszámlálásához

Ahelyett, hogy harmadik féltől származó könyvtárakra hagyatkozna, mint például a jQuery, ez a megoldás hozzáad egy osztályt, és a cellákat a .

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

Háttér-megközelítés: Node.js és Express használata EJS-sablonnal

Ez példahasználatok hogy a cellaszámot modális ablakban jelenítse meg, miközben szerveroldali cellákat számlál.

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

Egységtesztelés a Jest for Backend Solution segítségével

Itt egységteszteket fejlesztünk a Node.js megoldáshoz hogy az aktív számlálási logika rendeltetésszerűen működjön.

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

A cellakiválasztás és az osztálykezelés bővítése a JavaScriptben

Dolgozik vele és magában foglalja az osztályok dinamikus módosításának lehetőségét is a felhasználói bevitel vagy tartalom alapján. Többet is tehet, mint pusztán a sejteket számolni; kezelheti a felhasználói beviteleket is, és azonnal módosíthatja a táblázat tartalmát. Például olyan módszerekkel, mint jQuery-ben ill classList.remove() a vanilla JavaScriptben dinamikusan módosíthatja az osztályt, kiemelheti vagy akár eltávolíthatja az osztályt, amikor a felhasználó rákattint egy táblázatcellára. Ennek köszönhetően a táblázatok lényegesen interaktívabbakká válnak, és a tartalom valós idejű frissítésén alapuló további testreszabás lehetséges.

Ehhez hasznos lehet egy valós idejű adatokat megjelenítő táblázat, ahol az egyes cellákat vizuálisan el kell különíteni az osztályváltozástól függően. Az ilyen módosításokat okozó függvényeket eseményfigyelők segítségével egyszerűen össze lehet kötni. Például JavaScriptben használhatja bizonyos cellákon zajló események, például kattintások vagy billentyűlenyomások figyelésére. További osztálymódosítások vagy akár frissítések egy számlálóhoz, amely tükrözi a számát a táblázat cellái ebből a kölcsönhatásból származhatnak.

Elgondolkodhat azon helyzeteken is, amikor a cellák automatikusan frissülnek, a felhasználó bármiféle bevitele nélkül. A táblázat tartalma intervallumon vagy AJAX-hívásokon keresztül folyamatosan frissíthető és figyelhető. A reguláris kifejezések és módszerek, mint pl lehetővé teszi a táblázat számára, hogy automatikusan megváltoztassa az osztályait, és elindítson egy modált, amikor elér egy küszöböt. A táblázatok mostantól dinamikusabb alkalmazásokban is használhatók, például irányítópultokban és adatvezérelt beállításokban.

  1. A vanília JavaScriptben hogyan tudom megszámolni az adott osztályhoz tartozó összetevőket?
  2. Az adott osztályhoz tartozó összes elem kijelöléséhez használja a ; megszámolni őket, használni .
  3. A táblázatcella tartalma alapján hogyan tudok hozzá osztályt adni?
  4. Használhat egy osztályt és a segítségével ellenőrizze egy cella tartalmát vagy tulajdonságait.
  5. Mi különbözteti meg in vanília JavaScript from a jQuery-ben?
  6. egy natív JavaScript tulajdonság, és egy jQuery metódus, amely lekéri vagy módosítja a kiválasztott elemek tartalmát.
  7. Amikor egy adott osztályhoz tartozó cellákat számolunk, hogyan indíthatok modált?
  8. Ha modálist szeretne létrehozni a jQueryben, és aktiválni szeretné az adott osztályhoz tartozó elemek számától, használja a .
  9. JavaScriptben hogyan tudok osztályt kivenni egy elemből?
  10. Vanília JavaScriptben használhatja osztály eltávolításához egy elemből.

A JavaScript vagy a jQuery használható meghatározott osztályú cellák számlálásának kezelésére, pl , hatékony módon. A reguláris kifejezések hasznos eszközök a táblázattartalom mintáinak azonosítására, ami megkönnyíti a dinamikus osztály-hozzárendeléseket és egyéb interakciókat.

Ezenkívül egy hasznos módszer a felhasználók tájékoztatására a tábla állapotáról, ha az aktív cellák száma alapján modálist kezdeményezünk. A függvény a jQuery-ben vagy egy egyéni modális két olyan módszer, amelyek sokoldalúságot biztosítanak a táblázattartalom kezelésében.

  1. Az osztályok dinamikus hozzáadásával és a tartalom JavaScript és jQuery használatával történő kezelésével kapcsolatos információk a következő címen elérhető részletes útmutatóból származnak. jQuery API dokumentáció .
  2. A JavaScriptben a reguláris kifejezések tartalom manipulálására való használatára vonatkozó betekintések a következő címen található dokumentációból származnak MDN Web Docs .
  3. A jQuery UI Dialog módszerrel történő modális létrehozás és annak részletes használata a címen tekinthető meg jQuery UI párbeszédpanel dokumentációja .
  4. A JavaScript-ben meghatározott osztályokkal rendelkező elemek megszámlálásának fontosságát és a gyakorlati példákat olyan cikkekben tekinthetjük át, mint például FreeCodeCamp JavaScript útmutató .