Ajouter une classe à une ligne de la table qui contient les colonnes avec certaines valeurs
J'ai besoin d'ajouter une classe à un tr
lorsqu'il contient td
's qui contiennent certaines valeurs.
À l'aide de la réponse à cette question, de SORTE, j'ai pensé que j'ai trouvé la solution, mais il ne semble pas fonctionner sur des lignes qui contient plusieurs colonnes - il ne fonctionne que si il y a un seul td
.
Comment puis-je identifier les lignes de la table qui contiennent des colonnes de certaines valeurs, parmi d'autres colonnes? Veuillez noter que les colonnes ne seront pas toujours dans un certain ordre, donc il doit être une dynamique de réponse.
<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>
Vous devez vous connecter pour publier un commentaire.
Comme d'autres l'ont mentionné, l'utilisation de jQuery
:contains(text)
sélecteur:Quelque chose comme ça.
Modifier
Mise à jour de ma réponse à l'utilisation
length
au lieu de jQuerysize()
fonction. Bravo à celles qui ont posté des éléments de preuve à l'appui de l'idée que l'aidelength
est plus rapide. Après avoir fait quelques recherches de base sur ma propre, est venu à travers ce dans le jQuery docs:Étant donné que, de plus, les cas de test ci-dessous, je suis vendu. Me demande pourquoi
size()
existe encore? Je pensais que c'était parce que certains objets retournés par jQuery ne sont pas des tableaux, mais seulement se comporter comme des tableaux, et qu'étant donné que l'utilisation desize()
était préférable. Semble que le plus tard, au moins, n'est pas le cas.Acclamations
:contains(text)
comme d'autres l'ont souligné. Toutefois, je crois que ma réponse est la seule qui permettra de "désactiver" la ligne ssi il cotains par deux, les valeurs de texte.length
est toujours la meilleure..size()
? Et @VisioN, avez-vous des preuves/les raisons pour lesquelleslength
est toujours mieux?Ce sujet:
?
Ou pour assurer les DEUX sont là
contains
. Votre sélecteur "désactiver" untr
qui contient des cellules avec/les deux valeurs de texte. Ressemble à l'op veut désactiver le forum les deux valeurs sont trouvées.Utiliser le contient sélecteur
C'est une solution:
DÉMO: http://jsfiddle.net/Tnq9A/1/
Si vous n'avez pas besoin coïncidence absolue des textes, mais partielle, vous pouvez utiliser cette méthode de comparaison:
DÉMO: http://jsfiddle.net/Tnq9A/2/
true
si elle trouve de la valeur, mais il ne doit retourner true si il trouve deux.