Klasse hinzufügen, um eine Zeile in der Tabelle enthält Spalten mit bestimmten Werten
Ich muss eine Klasse Hinzugefügt werden, um eine tr
wenn es enthält td
's, die bestimmte Werte enthalten.
Mit der Antwort auf diese Frage, SO, dachte ich, dass ich die Lösung gefunden, aber es scheint nicht zu funktionieren auf Zeilen, mehrere Spalten enthält - es funktioniert nur, wenn es ein einzelnes td
.
Wie kann ich identifizieren die Zeilen, die Spalten enthalten, die mit bestimmten Werten, unter anderen Spalten? Bitte beachten Sie, dass die Spalten nicht immer in bestimmter Reihenfolge, so muss es sein, eine dynamische Antwort.
<table>
<tr>
<td>Hey!</td>
<td>Other column</td>
<td>Yo!</td>
<td>Other column2</td>
</tr>
</table>
<script type="text/javascript">
$('tr').each(function(){
if (($(this).find('td').text() == 'Hey!' ) && ($(this).find('td').text() == 'Yo!' ))
{
alert('here');
$(this).addClass('disabled');
}
});
</script>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie andere erwähnt haben, verwenden Sie die jQuery -
:contains(text)
selector:Sowas.
Bearbeiten
Aktualisiert, meine Antwort zu verwenden
length
statt jQuerysize()
Funktion. Kudos für diejenigen, die gebucht Beweise unterstützen die Vorstellung, dass mitlength
schneller ist. Nachdem ich einige grundlegende Erforschung meiner eigenen, stieß dies in der jQuery-Dokumentation:Da, plus die test-Fall, unten, ich bin verkauft. Frage mich, warum
size()
überhaupt existiert? Mein Gedanke war, dass es da einige Objekte zurückgegeben, die von jQuery sind keine arrays, sondern nur Verhalten wie arrays, und das gegeben, dass mitsize()
vorzuziehen sei. Scheint, dass die später, wenigstens, nicht der Fall.Cheers
:contains(text)
wie andere hingewiesen. Aber ich glaube meine Antwort ist die einzige, "deaktivieren" Sie die Zeile iff es cotains beide "text" - Werte.length
ist immer besser..size()
? Und @VisioN, Sie haben einen Nachweis/Begründung, warumlength
ist immer besser?Was:
?
Oder zu gewährleisten, gibt es
contains
. Ihre selector "deaktivieren" eintr
enthält Zellen mit entweder/sowohl text als Werte. Sieht aus wie op möchte deaktivieren iff beide Werte gefunden werden.Verwenden Sie die enthält selector
Ist dies eine Lösung:
DEMO: http://jsfiddle.net/Tnq9A/1/
Wenn Sie brauchen nicht die absolute Zufall, der die Texte aber teilweise, können Sie mit diesem Vergleich Methode:
DEMO: http://jsfiddle.net/Tnq9A/2/
true
findet es entweder Wert, aber es sollte nur true zurück, wenn es feststellt, dass beide.