Modāla aktivizēšana ar aktīvo klašu skaitu tabulā
Strādājot ar, iespējams, vēlēsities piemērot pielāgotu darbību, pamatojoties uz katras šūnas saturu HTML tabulas. Piemēram, varat izmantot konkrētus modeļus vai kritērijus, lai tabulas šūnām dinamiski piešķirtu klases. Tādējādi jūsu galds var kļūt noderīgāks un saistošāks.
Šajā piemērā tabulas šūnām, kas atbilst noteiktām prasībām, tiks nosaukta klase aktīvs tiem pievienots. A JavaScript Lai to izdarītu, tiek izmantota funkcija, kas pārbauda katru šūnu, pārbauda tās saturu un pēc tam atbilstoši piemēro klasi. Tā ir produktīva metode konkrētu šūnu organizēšanai atbilstoši to datiem.
Pēc pieteikšanās aktīvs klase uz šūnu apakškopu, bieži nākamais solis varētu būt to šūnu skaita skaitīšana, kurām ir šī klase. Ja vēlaties sākt notikumu vai darbību, šāda modāla atvēršana, kas parāda skaitu, šo šūnu skaitīšana var būt ļoti noderīga.
Šajā apmācībā jūs iemācīsit izmantot JavaScript, lai saskaitītu šūnu skaitu, kurām ir aktīvs klasē un automātiski palaist modālu, kas parāda skaitu. Izmantojot jQuery, risinājums ir vienkāršs, efektīvs un vienkārši īstenojams.
Pavēli | Lietošanas piemērs | |
---|---|---|
.each() | Katrs atbilstošo elementu kopas elements tiek atkārtots ar šo jQuery funkciju. Tas piemēro nosacījumu loģiku vai klases, atkārtojot katru tabulas šūnu ( | ) in our example. |
addClass() | The selected items receive one or more class names added to them by this jQuery method. The script applies the aktīvs vai neviens klases šūnām atbilstoši to saturam. | |
.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 | šūna atbilst noteiktam modelim. |
RegExp() | Regulāras izteiksmes tiek veidotas ar šo JavaScript konstruktoru. Skripts var piešķirt klases, pamatojoties uz saturu, identificējot modeļus, piemēram, cipariem, kam seko lielie burti vai c, kam seko cipari. | |
classList.add() | Šī pamata JavaScript tehnika piešķir elementam noteiktu klasi. Tas darbojas līdzīgi kā jQuery addClass() vaniļas JavaScript risinājumā, pievienojot aktīvs vai neviens klase atkarībā no apstākļiem. | |
DOMContentLoaded | Kad HTML dokumenta ielāde un parsēšana ir pabeigta, tiek aktivizēts notikums DOMContentLoaded. Vaniļas JavaScript piemērā tas nodrošina, ka skripts tiek izpildīts pēc DOM ielādes. | |
querySelectorAll() | Katru elementu dokumentā, kas atbilst dotajam CSS atlasītājam, atgriež šī JavaScript funkcija. JavaScript pamata piemērā tas tiek izmantots, lai atlasītu katru | element in the table for further processing. |
katram() | 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. |
Izpratne par skriptu: šūnu skaitīšana un modāla aktivizēšana
Pirmajā skripta piemērā katra tabulas šūna tiek atkārtota, tās saturs tiek novērtēts un atkarībā no novērtējuma tiek piešķirta klase, izmantojot jQuery. Šī funkcija ir iespējama, atkārtojot katru no
Ar RegExp() konstruktoru, tiek konstruēta regulāra izteiksme sakrītošiem cipariem, kam seko burti. Šis paņēmiens nodrošina, ka šūnas ar datiem, piemēram, "1A" vai "3C", tiek atpazītas un marķētas ar pašreizējo klasi. Šūna saņem atsevišķu klasi, ko sauc neviens ja saturs atbilst citam modelim, piemēram, "c", kam seko skaitlis. Tas ļauj precīzāk klasificēt tabulā esošos datus. Turklāt, addClass() Metode garantē, ka šūnām šīs klases var pievienot, neizdzēšot tajās jau esošās klases.
Nākamais solis ir saskaitīt atbilstošās šūnas un uzsākt modālu pēc tam, kad tās visas ir marķētas ar aktīvo klasi. Katru reizi, kad šūna iegūst aktīvo klasi, skaits tiek palielināts un saglabāts mainīgajā ar nosaukumu aktīvais skaits. Izmantojot šo skaitu, ir jānosaka atbilstošo šūnu skaits tabulā. Izmantojot .dialog() funkcija no jQuery UI, modāls tiek ģenerēts, kad skaitīšana ir pabeigta. The autoOpen: taisnība atribūts ļauj modālam automātiski atvērties. Modāla iekšpusē tiek parādīts aktīvo šūnu skaits.
Otrajā gadījumā, lai dublētu identisku procedūru, tiek izmantots vaniļas JavaScript. querySelectorAll() Šajā pieejā tiek izmantots jQuery vietā, lai atlasītu visas tabulas šūnas, un tas ir vienkārši katram() cilpa atkārtojas katrā šūnā. Regulāras izteiksmes tiek izmantotas, lai saskaņotu šūnas saturu, tāpat kā jQuery risinājumā. Ja tiek atklāta atbilstība, ActiveCount tiek atjaunināts un aktīvā klase tiek pievienota, izmantojot classList.add() metodi. Galu galā, mainot DOM iepriekš definēta modāla elementa iekšējo HTML, modāls tiek aktivizēts. Izmantojot šo risinājumu, kas nav atkarīgs no ārējām bibliotēkām, tiek sasniegts tāds pats rezultāts kā jQuery piemērā.
Šūnu skaitīšana ar noteiktu klasi un modāla aktivizēšana
Šī metode saskaita vienumus, kuriem ir noteikta klase, un dinamiski piešķir tiem klases, izmantojot jQuery. Pēc tam tiek atvērts modālais logs.
$(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īva: izmantojiet Vanilla JavaScript aktīvo šūnu skaitīšanai
Tā vietā, lai paļautos uz trešo pušu bibliotēkām, piemēram, jQuery, šis risinājums pievieno klasi un saskaita šūnas, izmantojot tīrs 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;
});
Aizmugursistēmas pieeja: Node.js un Express izmantošana ar EJS veidni
Šis Node.js lietojumu piemēri EJS šablons lai renderētu šūnu skaitu modālā logā, vienlaikus skaitot šūnas servera pusē.
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'));
Vienību pārbaude ar Jest for backend Solution
Šeit mēs izstrādājam vienību testus Node.js risinājumam, izmantojot Joks lai nodrošinātu, ka aktīvā skaitīšanas loģika darbojas kā paredzēts.
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);
});
Šūnu atlases un klašu apstrādes paplašināšana JavaScript
Strādājot ar JavaScript un HTML tabulas ietver arī iespēju dinamiski modificēt klases, reaģējot uz lietotāja ievadi vai saturu. Jūs varat darīt vairāk, nekā tikai saskaitīt šūnas; varat arī apstrādāt lietotāja ievades un uzreiz mainīt tabulas saturu. Piemēram, izmantojot tādas metodes kā removeClass() jQuery vai classList.remove() vaniļas JavaScript versijā jūs varat dinamiski modificēt klasi, izcelt vai pat noņemt klasi, kad lietotājs noklikšķina uz tabulas šūnas. Tā rezultātā tabulas kļūst ievērojami interaktīvākas, un ir iespējama turpmāka pielāgošana, pamatojoties uz satura atjauninājumiem reāllaikā.
Tabula, kurā parādīti reāllaika dati, kur konkrētas šūnas ir vizuāli jāatdala atkarībā no klases izmaiņām, būtu noderīgs izmantošanas gadījums. Funkcijas, kas izraisa šīs modifikācijas, ir vienkārši saistīt, izmantojot notikumu uztvērējus. Piemēram, JavaScript varat izmantot addEventListener() lai noklausītos notikumus noteiktās šūnās, piemēram, klikšķus vai taustiņu nospiešanu. Papildu klases modifikācijas vai pat skaitītāja atjauninājumi, kas atspoguļo skaitu aktīvs Šīs mijiedarbības rezultātā var rasties tabulas šūnas.
Varat arī padomāt par situācijām, kad šūnām ir jāatjaunina automātiski bez lietotāja ievades. Tabulas saturu var atjaunināt un pastāvīgi uzraudzīt, izmantojot intervālu vai AJAX zvanus. Regulāras izteiksmes un metodes, piemēram, setInterval() ļauj tabulai automātiski mainīt savas klases un palaist modālu, kad tiek sasniegts slieksnis. Tabulas tagad var izmantot dinamiskākās lietojumprogrammās, piemēram, informācijas paneļos un ar datiem pamatotos iestatījumos.
Bieži uzdotie jautājumi par JavaScript klases apstrādi un šūnu skaitīšanu
- Kā vaniļas JavaScript var saskaitīt komponentus, kas pieder noteiktai klasei?
- Lai atlasītu katru elementu ar šo klasi, izmantojiet document.querySelectorAll('.className'); lai tās saskaitītu, izmantojiet length.
- Kā es varu tai pievienot klasi, pamatojoties uz tabulas šūnas saturu?
- Jūs varat pieteikties klasei, izmantojot classList.add() un pārbaudiet šūnas saturu, izmantojot textContent vai innerText īpašības.
- Kas atšķir text() vaniļas JavaScript no textContent jQuery?
- textContent ir vietējais JavaScript īpašums, un text() ir jQuery metode, kas izgūst vai maina atlasīto elementu saturu.
- Kā es varu sākt modālu, skaitot šūnas, kas pieder noteiktai klasei?
- Lai izveidotu modālu programmā jQuery un lai tas būtu atkarīgs no vienumu skaita ar noteiktu klasi, izmantojiet .dialog().
- Kā programmā JavaScript var izņemt klasi no elementa?
- Vaniļas JavaScript varat izmantot classList.remove('className') lai noņemtu klasi no elementa.
Pēdējās domas par šūnu skaitīšanu un modāļiem
JavaScript vai jQuery var izmantot, lai pārvaldītu šūnu skaitīšanu ar noteiktu klasi, piemēram aktīvs, efektīvā veidā. Regulārās izteiksmes ir noderīgs rīks, lai identificētu tabulas satura modeļus, kas atvieglo dinamisku klašu piešķiršanu un citas mijiedarbības.
Turklāt noderīga metode lietotāju informēšanai par tabulas statusu ir modāla iniciēšana, pamatojoties uz šo aktīvo šūnu skaitu. The .dialog() Funkcija jQuery vai pielāgots modāls ir divas metodes, kas nodrošina lielu daudzpusību, apstrādājot tabulas saturu.
Avoti un atsauces
- Informācija par klašu dinamisku pievienošanu un satura apstrādi, izmantojot JavaScript un jQuery, tika iegūta no detalizētas rokasgrāmatas, kas pieejama vietnē jQuery API dokumentācija .
- Ieskati par JavaScript regulāro izteiksmju izmantošanu, lai manipulētu ar saturu, tika sniegti no dokumentācijas, kas atrodama vietnē MDN tīmekļa dokumenti .
- Modālu izveidi, izmantojot jQuery UI Dialog metodi, un tās detalizēto lietojumu var izpētīt vietnē jQuery UI dialoglodziņa dokumentācija .
- To, cik svarīgi ir skaitīt elementus ar konkrētām klasēm JavaScript un praktiskiem piemēriem, var pārskatīt tādos rakstos kā FreeCodeCamp JavaScript rokasgrāmata .