2016-09-23 3 views
-1

Ich habe eine Tabelle mit Reihen konfiguriert, wie:Jquery Vorkommen der Klasse zählen

<tr id='user0'><td></td><td></td></tr> 
<tr id='site0'><td></td><td></td></tr> 
<tr id='staff0'><td></td><td></td></tr> 

<tr id='user1'><td></td><td></td></tr> 
<tr id='site1'><td></td><td></td></tr> 
<tr id='staff1'><td></td><td></td></tr> 

<tr id='user2'><td></td><td></td></tr> 
<tr id='site2'><td></td><td></td></tr> 
<tr id='staff2'><td></td><td></td></tr> 

die Zeilen zu einem bestimmten Mitarbeiter betreffen, und jeder ‚Block‘ von Zeilen hat die ID-Nummer erhöht. ZB: user0, site0, staff0 - user1, site1, staff1 - user2, site2, staff2 etc ...

Einige der Zeile <td> kann eine Klasse zugewiesen haben. Beispiel:

Wie zähle ich alle Vorkommen dieser Klasse für die 3 Zeilen basierend auf der ID-Nummer. So in dem obigen Beispiel wäre das Ergebnis 3

Dank

+0

Sie möchten Fehlerklassen zählen? Nicht klar bekommen –

+0

Einfachste Lösung: Tun Sie es nicht basierend auf welcher Nummer die verschiedenen IDs enden, sondern geben Sie _all_ drei Elemente eine gemeinsame Klasse, 'itemX' oder so ähnlich. Dann ist es so einfach wie '$ ('. ItemX .error'). Length ' – CBroe

+0

Ich möchte zählen, wie oft diese Fehlerklasse für jeden' Block 'von TR verwendet wird – Tom

Antwort

1

Sie wollen wie Dies ?

$(document).ready(function() { 
    var tr0 = $("tr[id$=0] .error").length; 
    var tr1 = $("tr[id$=1] .error").length; 
    var tr2 = $("tr[id$=2] .error").length; 
    console.log(tr0); 
    console.log(tr1); 
    console.log(tr2); 
}); 
+0

Das funktioniert gut und macht was ich brauche. Vielen Dank :) – Tom

0

Sie können die Elemente Schleife über, die, die mit dem angegebenen IDs finden, und die Fehlerklassen zählen:

function countItems(id) { 
    var count = 0; 
    Array.prototype.forEach.call(document.getElementsByTagName("tr"), function(el) { 
    if (parseInt(el.id.replace(/\D/g, ""), 10) === id) { 
     count += el.querySelectorAll("td[class='error']").length; 
    } 
    }); 
    return count; 
} 

console.log(countItems(0)) // 3 
Verwandte Themen