Auslösen eines Modals mit aktiver Klassenanzahl in einer Tabelle
Möglicherweise möchten Sie bei der Arbeit ein benutzerdefiniertes Verhalten basierend auf dem Inhalt jeder Zelle anwenden . Sie können beispielsweise bestimmte Muster oder Kriterien verwenden, um Tabellenzellen dynamisch Klassen zuzuweisen. Ihr Tisch wird dadurch möglicherweise nützlicher und ansprechender.
In diesem Beispiel erhalten Tabellenzellen, die bestimmte Anforderungen erfüllen, einen Klassennamen ihnen hinzugefügt. A Zu diesem Zweck wird eine Funktion verwendet, die jede Zelle untersucht, ihren Inhalt überprüft und dann die Klasse entsprechend anwendet. Es ist eine produktive Methode, bestimmte Zellen anhand ihrer Daten zu organisieren.
Nach dem Auftragen der Um die Klasse einer Teilmenge von Zellen zuzuordnen, könnte das Zählen der Anzahl der Zellen, die diese Klasse haben, ein häufiger nächster Schritt sein. Wenn Sie ein Ereignis oder eine Aktion starten möchten, kann das Öffnen eines Modals, das die Anzahl anzeigt, sehr hilfreich sein. Das Zählen dieser Zellen kann sehr hilfreich sein.
In diesem Tutorial lernen Sie, wie Sie mit JavaScript die Anzahl der Zellen zählen, die das haben Klasse und um automatisch ein Modal zu starten, das die Anzahl anzeigt. Benutzen Die Lösung ist unkompliziert, effizient und einfach zu implementieren.
Befehl | Anwendungsbeispiel | |
---|---|---|
.each() | Jedes Element in einer Menge übereinstimmender Elemente wird von dieser jQuery-Funktion iteriert. Es wendet bedingte Logik oder Klassen an, indem es über jede Tabellenzelle iteriert ( | ) in our example. |
addClass() | The selected items receive one or more class names added to them by this jQuery method. The script applies the oder Klasse entsprechend ihrem Inhalt in Zellen einteilen. | |
.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 | Zelle entspricht einem bestimmten Muster. |
RegExp() | Mit diesem JavaScript-Konstruktor werden reguläre Ausdrücke erstellt. Das Skript kann Klassen basierend auf dem Inhalt zuweisen, indem es Muster identifiziert, z oder . | |
classList.add() | Diese grundlegende JavaScript-Technik weist einem Element eine bestimmte Klasse zu. Es funktioniert ähnlich wie addClass() von jQuery in der Vanilla-JavaScript-Lösung und fügt hinzu oder Klasse je nach Bedingungen. | |
DOMContentLoaded | Wenn das HTML-Dokument vollständig geladen und analysiert wurde, wird das DOMContentLoaded-Ereignis ausgelöst. Im Vanilla-JavaScript-Beispiel wird sichergestellt, dass das Skript ausgeführt wird, nachdem das DOM vollständig geladen wurde. | |
querySelectorAll() | Jedes Element im Dokument, das mit dem angegebenen CSS-Selektor übereinstimmt, wird von dieser JavaScript-Funktion zurückgegeben. Im einfachen JavaScript-Beispiel wird es verwendet, um alles auszuwählen | 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. |
Das Skript verstehen: Zellen zählen und ein Modal auslösen
Im ersten Skriptbeispiel wird über jede Tabellenzelle iteriert, ihr Inhalt ausgewertet und abhängig von der Auswertung eine Klasse zugewiesen . Diese Funktion wird durch das Durchlaufen jedes einzelnen ermöglicht
Mit dem Konstruktor wird ein regulärer Ausdruck zum Abgleichen von Zahlen gefolgt von Buchstaben erstellt. Diese Technik stellt sicher, dass Zellen mit Daten wie „1A“ oder „3C“ erkannt und mit der aktuellen Klasse gekennzeichnet werden. Die Zelle erhält eine eigene Klasse namens Wenn der Inhalt einem anderen Muster entspricht, z. B. „c“, gefolgt von einer Zahl. Dies ermöglicht eine genauere Klassifizierung der Daten in der Tabelle. Darüber hinaus ist die -Methode garantiert, dass Zellen diese Klassen hinzugefügt werden können, ohne bereits vorhandene Klassen zu löschen.
Der nächste Schritt besteht darin, die entsprechenden Zellen zu zählen und ein Modal zu initiieren, nachdem sie alle mit der aktiven Klasse markiert wurden. Jedes Mal, wenn eine Zelle die aktive Klasse erhält, wird die Anzahl erhöht und in einer Variablen mit dem Namen gespeichert . Anhand dieser Zählung muss die Anzahl der qualifizierenden Zellen in der Tabelle ermittelt werden. Mit der Funktion aus der jQuery-Benutzeroberfläche wird ein Modal generiert, wenn die Zählung abgeschlossen ist. Der Das Attribut ermöglicht das automatische Öffnen des Modals. Die Anzahl der aktiven Zellen wird im Modal angezeigt.
Im zweiten Fall wird Vanilla-JavaScript verwendet, um den identischen Vorgang zu duplizieren. wird in diesem Ansatz anstelle von jQuery verwendet, um alle Tabellenzellen auszuwählen, und zwar direkt Die Schleife durchläuft jede Zelle. Um den Zellinhalt abzugleichen, werden reguläre Ausdrücke verwendet, genau wie in der jQuery-Lösung. Wenn eine Übereinstimmung festgestellt wird, wird activeCount aktualisiert und die aktive Klasse mithilfe von hinzugefügt Verfahren. Letztendlich wird durch Ändern des internen HTML-Codes eines vordefinierten modalen Elements im DOM das modale Element aktiviert. Mit dieser Lösung, die nicht auf externe Bibliotheken angewiesen ist, wird das gleiche Ergebnis wie im jQuery-Beispiel erzielt.
Zählen von Zellen mit einer bestimmten Klasse und Auslösen eines Modals
Diese Methode zählt Elemente, die eine bestimmte Klasse haben, und weist ihnen mithilfe von dynamisch Klassen zu . Anschließend wird ein modales Fenster geöffnet.
$(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); } });
});
Alternative: Verwenden von Vanilla-JavaScript zum Zählen aktiver Zellen
Anstatt sich auf Bibliotheken von Drittanbietern wie jQuery zu verlassen, fügt diese Lösung eine Klasse hinzu und zählt die verwendeten Zellen .
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;
});
Backend-Ansatz: Verwendung von Node.js und Express mit EJS-Templating
Das Beispielanwendungen um die Zellenzahl in einem modalen Fenster darzustellen, während die Zellen serverseitig gezählt werden.
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'));
Unit-Tests mit Jest für Backend-Lösung
Hier entwickeln wir Unit-Tests für die Node.js-Lösung mit um sicherzustellen, dass die aktive Zähllogik wie vorgesehen funktioniert.
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);
});
Erweiterung der Zellenauswahl und Klassenbehandlung in JavaScript
Arbeiten mit Und beinhaltet auch die Möglichkeit, Klassen als Reaktion auf Benutzereingaben oder Inhalte dynamisch zu ändern. Sie können mehr als nur die Zellen zählen; Sie können auch Benutzereingaben verarbeiten und den Inhalt der Tabelle sofort ändern. Zum Beispiel mit Methoden wie in jQuery oder classList.remove() In Vanilla JavaScript können Sie die Klasse dynamisch ändern, hervorheben oder sogar entfernen, wenn ein Benutzer auf eine Tabellenzelle klickt. Dadurch werden Tabellen deutlich interaktiver und eine weitere Individualisierung durch Aktualisierungen der Inhalte in Echtzeit ist möglich.
Eine Tabelle mit Echtzeitdaten, in der bestimmte Zellen je nach Klassenänderung visuell getrennt werden müssen, wäre hierfür ein nützlicher Anwendungsfall. Es ist einfach, Funktionen, die diese Änderungen verursachen, mithilfe von Ereignis-Listenern zu binden. In JavaScript können Sie beispielsweise verwenden um auf Ereignisse in bestimmten Zellen zu warten, z. B. Klicks oder Tastendrücke. Zusätzliche Klassenänderungen oder sogar Aktualisierungen eines Zählers, der die Anzahl widerspiegelt Zellen in der Tabelle können aus dieser Interaktion resultieren.
Sie können sich auch Situationen vorstellen, in denen Zellen ohne Eingaben des Benutzers automatisch aktualisiert werden sollen. Tabelleninhalte können kontinuierlich über ein Intervall oder AJAX-Aufrufe aktualisiert und überwacht werden. Reguläre Ausdrücke und Methoden wie Ermöglichen Sie der Tabelle, ihre Klassen automatisch zu ändern und ein Modal zu starten, wenn ein Schwellenwert erreicht wird. Tabellen können jetzt in dynamischeren Anwendungen wie Dashboards und datengesteuerten Einstellungen verwendet werden.
- Wie kann ich in Vanilla-JavaScript Komponenten zählen, die zu einer bestimmten Klasse gehören?
- Um jedes Element mit dieser Klasse auszuwählen, verwenden Sie ; um sie zu zählen, verwenden Sie .
- Wie kann ich basierend auf dem Inhalt der Tabellenzelle eine Klasse hinzufügen?
- Sie können eine Klasse mit anwenden und überprüfen Sie den Inhalt einer Zelle mit oder Eigenschaften.
- Was zeichnet aus in Vanilla JavaScript von in jQuery?
- ist eine native JavaScript-Eigenschaft und ist eine jQuery-Methode, die den Inhalt ausgewählter Elemente abruft oder ändert.
- Wie kann ich beim Zählen von Zellen, die zu einer bestimmten Klasse gehören, ein Modal starten?
- Um ein Modal in jQuery zu erstellen und es abhängig von der Anzahl der Elemente einer bestimmten Klasse auszulösen, verwenden Sie .
- Wie kann ich in JavaScript eine Klasse aus einem Element herausnehmen?
- In Vanilla JavaScript können Sie verwenden um eine Klasse aus einem Element zu entfernen.
JavaScript oder jQuery können verwendet werden, um das Zählen von Zellen mit einer bestimmten Klasse zu verwalten, z , auf effektive Weise. Reguläre Ausdrücke sind ein nützliches Werkzeug zum Identifizieren von Mustern in Tabelleninhalten, das dynamische Klassenzuweisungen und andere Interaktionen erleichtert.
Darüber hinaus besteht eine nützliche Methode, Benutzer über den Status einer Tabelle zu informieren, darin, ein Modal basierend auf der Anzahl dieser aktiven Zellen zu initiieren. Der Funktion in jQuery oder ein benutzerdefiniertes Modal sind zwei Methoden, die eine große Vielseitigkeit bei der Handhabung von Tabelleninhalten bieten.
- Informationen zum dynamischen Hinzufügen von Klassen und zum Umgang mit Inhalten mithilfe von JavaScript und jQuery wurden einem ausführlichen Leitfaden entnommen, der unter verfügbar ist jQuery-API-Dokumentation .
- Einblicke in die Verwendung regulärer Ausdrücke in JavaScript zur Bearbeitung von Inhalten wurden der Dokumentation unter entnommen MDN-Webdokumente .
- Die modale Erstellung mit der jQuery UI Dialog-Methode und ihre detaillierte Verwendung können unter untersucht werden Dokumentation zum jQuery-UI-Dialog .
- Die Bedeutung des Zählens von Elementen mit bestimmten Klassen in JavaScript und praktische Beispiele können in Artikeln wie besprochen werden FreeCodeCamp JavaScript-Leitfaden .