2016-08-30 2 views
1

Ich versuche, eine DataTable durchlaufen, und nur Zeilen verarbeiten, die eine Zelle mit einer Klasse von "Erfolg" enthalten. Ich habe Probleme, die Syntax richtig zu bekommen; Kann jemand helfen?DataTables - Prozess Zeilen mit bestimmten Zellklasse

Hier ist, was ich bisher haben (das nicht funktioniert):

for(i=0; i<myDataTable.rows()[0].length; i++) { 
    if(myDataTable.rows(i).data()[0] != "" && myDataTable.rows(i).data()[0].child('td').hasClass('success')) { 
     <process stuff> 
    } 
} 

Irgendwelche Vorschläge?

+1

Wie sieht 'myDataTable' aus? – amflare

+0

Bitte teilen Sie uns mit, welche Datenbank Sie verwenden, da wir keine Ahnung haben. –

+0

@amflare Ich denke nicht, dass das wirklich relevant ist? Ich versuche nur zu identifizieren, wenn in Zeile (i) eine Klasse von "Erfolg" hat. Alles andere funktioniert gut, und ich versuche nur meine if-Aussage zu beschränken. – niclake

Antwort

1

Sie können diese row().node() Tables API-Aufruf in Verbindung mit der .find() jQuery-Funktion mit dem tun:

for(i=0; i<myDataTable.rows()[0].length; i++) { 
    if(myDataTable.row(i).data()[0] != "" // <-- See Note about this part 
     && $(myDataTable.row(i).node()).find('td.success').length) { 
     //process stuff 
    } 
} 

Diese Änderung des Code-Snippet wird die node() Aufruf verwenden, die das <tr> Element der Reihe bekommt gefunden von myDataTable.row(i). Dann können wir die find() Methode verwenden, um zu überprüfen, ob irgendeine (es wäre anders, wenn Sie nur für eine bestimmte Spalte interessiert) der <td> in der <tr> haben Sie die success Klasse.

Hinweis

Ihr Code hat myDataTable.row(i).data()[0] != "". Dies überprüft, dass die erste Spalte der Zeile nicht die leere Zeichenfolge ist. Wenn Sie möchten, dass dies Teil der Bedingung für die Verarbeitung ist, lassen Sie es, aber ich bin mir nicht sicher, da Sie das in der Frage nicht erwähnt haben.

Beachten Sie auch, dass Sie für eine einzelne Zeile row() nicht rows() verwenden sollten.

+0

Aus irgendeinem Grund muss ich diesen Knoten zu einem jQuery-Objekt machen. Also, '&& $ (myDataTable.row (i) .node()). Find ('td.success'). Length 'hat den Trick für mich gemacht. – niclake

+1

@niclake Oh, ja, das ist mein Fehler. Ich werde es im Beispiel für zukünftige Leser beheben. Schöner Fang! –

+0

Auch erwähnenswert ... du hast die [0] aus dem Original 'i niclake

Verwandte Themen