Attivazione di un modale con conteggio delle classi attive in una tabella
Potresti voler applicare un comportamento personalizzato in base al contenuto di ciascuna cella quando lavori . Ad esempio, puoi utilizzare modelli o criteri specifici per assegnare dinamicamente le classi alle celle della tabella. Di conseguenza, la tua tabella potrebbe diventare più utile e coinvolgente.
In questo esempio, le celle della tabella che soddisfano determinati requisiti avranno una classe denominata aggiunto ad essi. UN A tale scopo viene utilizzata la funzione che esamina ogni cella, ne verifica il contenuto e quindi applica la classe in modo appropriato. È un metodo produttivo per organizzare celle particolari in base ai loro dati.
Dopo aver applicato il classe in un sottoinsieme di celle, contare il numero di celle che hanno questa classe potrebbe essere un passaggio successivo frequente. Se desideri avviare un evento o un'azione, ad esempio aprire una finestra modale che mostra il conteggio, contare queste celle può essere molto utile.
Questo tutorial ti insegnerà come utilizzare JavaScript per contare il numero di celle che contengono il file class e per avviare automaticamente una modale che mostra il conteggio. Utilizzando , la soluzione è diretta, efficiente e semplice da implementare.
Comando | Esempio di utilizzo | |
---|---|---|
.each() | Ogni elemento in un insieme di elementi corrispondenti viene ripetuto da questa funzione jQuery. Applica logica o classi condizionali eseguendo un'iterazione su ciascuna cella della tabella ( | ) in our example. |
addClass() | The selected items receive one or more class names added to them by this jQuery method. The script applies the O classe alle celle in base al loro contenuto. | |
.dialogo() | 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. | |
.testo() | 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 | cella corrisponde a un modello particolare. |
RegExp() | Le espressioni regolari vengono create con questo costruttore JavaScript. Lo script può assegnare classi in base al contenuto identificando modelli come O . | |
classList.add() | Questa tecnica JavaScript di base conferisce a un elemento una classe particolare. Funziona in modo simile a addClass() di jQuery nella soluzione JavaScript vanilla, aggiungendo il file O classe a seconda delle condizioni. | |
DOMContentLoaded | Una volta terminato il caricamento e l'analisi del documento HTML, viene attivato l'evento DOMContentLoaded. Nell'esempio JavaScript vanilla, si assicura che lo script venga eseguito al termine del caricamento del DOM. | |
querySelectorAll() | Ogni elemento nel documento che corrisponde al selettore CSS specificato viene restituito da questa funzione JavaScript. Nell'esempio JavaScript di base, viene utilizzato per selezionare Every | element in the table for further processing. |
perOgni() | 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. |
Comprensione dello script: conteggio delle celle e attivazione di una modale
Nel primo esempio di script, ogni cella della tabella viene ripetuta, il suo contenuto viene valutato e viene assegnata una classe in base alla valutazione utilizzando . Questa funzionalità è resa possibile dall'iterazione di ciascuno dei file
Con il costruttore, viene costruita un'espressione regolare per i numeri corrispondenti seguiti da lettere. Questa tecnica garantisce che le celle con dati, come "1A" o "3C", vengano riconosciute ed etichettate con la classe corrente. La cella riceve una classe separata chiamata se il contenuto corrisponde a uno schema diverso, ad esempio "c" seguito da un numero. Ciò consente di classificare i dati nella tabella in modo più preciso. Inoltre, il Il metodo garantisce che le celle possano aggiungere queste classi senza eliminare alcuna classe che potrebbero già avere.
Il passaggio successivo consiste nel contare le celle appropriate e avviare una modale dopo che sono state tutte contrassegnate con la classe attiva. Ogni volta che una cella ottiene la classe attiva, il conteggio viene incrementato e salvato in una variabile denominata . Il numero di celle qualificanti nella tabella deve essere accertato utilizzando questo conteggio. Utilizzando il funzione dall'interfaccia utente jQuery, viene generata una modale al termine del conteggio. IL L'attributo consente al modale di aprirsi automaticamente. Il numero di celle attive viene mostrato all'interno del modale.
Nel secondo caso, viene utilizzato JavaScript vanilla per duplicare la procedura identica. viene utilizzato al posto di jQuery in questo approccio per selezionare tutte le celle della tabella e in modo semplice il ciclo scorre ogni cella. Le espressioni regolari vengono utilizzate per abbinare il contenuto della cella, proprio come nella soluzione jQuery. Se viene rilevata una corrispondenza, activeCount viene aggiornato e la classe attiva viene aggiunta utilizzando il file metodo. In definitiva, alterando l'HTML interno di un elemento modale predefinito nel DOM si attiva il modale. Lo stesso risultato dell'esempio jQuery si ottiene utilizzando questa soluzione, che non si basa su librerie esterne.
Conteggio delle celle con una classe specifica e attivazione di una modale
Questo metodo conta gli elementi che hanno una determinata classe e assegna loro dinamicamente le classi utilizzando . Quindi si apre una finestra modale.
$(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: utilizzare Vanilla JavaScript per contare le celle attive
Invece di fare affidamento su librerie di terze parti come jQuery, questa soluzione aggiunge una classe e conta le celle utilizzando .
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;
});
Approccio backend: utilizzo di Node.js ed Express con modelli EJS
Questo usi di esempio per eseguire il rendering del conteggio delle celle in una finestra modale durante il conteggio delle celle sul lato server.
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'));
Test unitari con Jest per la soluzione backend
Qui sviluppiamo test unitari per la soluzione Node.js utilizzando per fare in modo che la logica del conteggio attivo funzioni come previsto.
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);
});
Espansione sulla selezione delle celle e sulla gestione delle classi in JavaScript
Lavorare con E implica anche la possibilità di modificare dinamicamente le classi in risposta all'input o al contenuto dell'utente. Puoi fare di più che contare semplicemente le celle; puoi anche gestire gli input dell'utente e modificare istantaneamente il contenuto della tabella. Ad esempio, utilizzando metodi come in jQuery o classList.remove() in JavaScript Vanilla, puoi modificare dinamicamente la classe, evidenziare o persino rimuovere la classe quando un utente fa clic su una cella della tabella. Di conseguenza, le tabelle diventano notevolmente più interattive ed è possibile un'ulteriore personalizzazione basata sull'aggiornamento dei contenuti in tempo reale.
Una tabella che mostra dati in tempo reale in cui celle specifiche devono essere separate visivamente a seconda di un cambio di classe sarebbe un caso d'uso utile a questo scopo. È semplice associare le funzioni che causano queste modifiche utilizzando i listener di eventi. In JavaScript, ad esempio, puoi usare per ascoltare eventi su celle particolari, come clic o pressioni di tasti. Ulteriori modifiche alle classi o addirittura aggiornamenti a un contatore che riflette il numero di le celle nella tabella possono risultare da questa interazione.
Puoi anche pensare a situazioni in cui le celle dovrebbero aggiornarsi automaticamente senza alcun input da parte dell'utente. Il contenuto della tabella può essere aggiornato e monitorato continuamente tramite un intervallo o chiamate AJAX. Espressioni regolari e metodi come consentire alla tabella di cambiare automaticamente le sue classi e avviare una modale quando viene raggiunta una soglia. Le tabelle ora possono essere utilizzate in applicazioni più dinamiche, come dashboard e impostazioni basate sui dati.
- In JavaScript Vanilla, come posso contare i componenti che appartengono a una particolare classe?
- Per selezionare ogni elemento con quella classe, utilizzare ; per contarli, usa .
- In base al contenuto della cella della tabella, come posso aggiungervi una classe?
- Puoi applicare una classe utilizzando e ispezionare il contenuto di una cella utilizzando O proprietà.
- Ciò che distingue in JavaScript vaniglia da in jQuery?
- è una proprietà JavaScript nativa e è un metodo jQuery che recupera o modifica il contenuto degli elementi selezionati.
- Quando si contano le celle che appartengono a una particolare classe, come posso avviare una modale?
- Per costruire un modale in jQuery e attivarlo in base al numero di elementi con una particolare classe, utilizzare .
- In JavaScript, come posso eliminare una classe da un elemento?
- In JavaScript Vanilla, puoi usare per rimuovere una classe da un elemento.
JavaScript o jQuery possono essere utilizzati per gestire il conteggio delle celle con una classe specificata, ad esempio , in modo efficace. Le espressioni regolari sono uno strumento utile per identificare modelli nel contenuto della tabella, facilitando l'assegnazione dinamica delle classi e altre interazioni.
Inoltre, un metodo utile per informare gli utenti sullo stato di una tabella è avviare una finestra modale basata sul numero di celle attive. IL funzione in jQuery o un modale personalizzato sono due metodi che offrono una grande versatilità quando si tratta di gestire il contenuto della tabella.
- Le informazioni sull'aggiunta dinamica di classi e sulla gestione dei contenuti utilizzando JavaScript e jQuery sono state ricavate da una guida dettagliata disponibile all'indirizzo Documentazione dell'API jQuery .
- Gli approfondimenti sull'uso delle espressioni regolari in JavaScript per manipolare il contenuto sono stati referenziati dalla documentazione trovata su Documenti Web MDN .
- È possibile esplorare la creazione modale utilizzando il metodo della finestra di dialogo dell'interfaccia utente jQuery e il suo utilizzo dettagliato all'indirizzo Documentazione della finestra di dialogo dell'interfaccia utente jQuery .
- L'importanza di contare gli elementi con classi specifiche in JavaScript ed esempi pratici possono essere esaminati in articoli come Guida JavaScript di FreeCodeCamp .