Ich habe viele automatisch generierte Tabelle und diese Tabellen haben ein <span class="productNumber">
Element in der thead
, die die Anzahl der Produkte in der Tabelle zeigt. (Im Moment ist dies in PHP über <?php count($products); ?>
getan).jQuery: Zugriff auf eine einzelne Instanz einer Klasse in einer dynamisch erstellten Tabelle
Ich schrieb einen Filter, um Benutzern zu helfen, diese Tabellen zu navigieren. Der Filter ermöglicht dem Benutzer, eine Produktkategorie zu wählen, und alle tr
Elemente, die diese Produktkategorie nicht haben, erhalten die Bootstrap-Klasse hidden
.
Ich möchte jetzt jQuery verwenden, um die tatsächlich sichtbaren Elemente für jede Tabelle zu zählen und die Anzahl der tatsächlich sichtbaren Elemente anzuzeigen.
Mein aktueller Ansatz ist dies:
$('table').each(function(){
let counter = 0;
$('tr', this).each(function(){
if (this.hasClass("hidden")) {
counter++;
};
});
$('.productNumber').html(counter);
})
Das Problem ist, dass diese alle .productNumber
Elemente mit dem gleichen Wert überschrieben (die Anzahl der sichtbaren Produkte in der allerletzten table
).
Ich versuchte es auf verschiedene Weise ($('.productNumber', this)
, $('.productNumber')[0]
, etc.), war aber nicht in der Lage zu schreiben, nur für die aktuellen table
‚s .productNumber
ändern.
Randbemerkung: Sie brauchen nicht 'counter' Calc nur' $ ('tr.hidden', this) .length' sollten Sie die gewünschte Anzahl –