2010-10-05 23 views
1

Supposons que vous ayez une table comme ceci:jquery - comment ajouter une classe en fonction du contenu d'un élément?

<table> 
<tr> 
<td>Group 1</td> 
<td>some data here</td> 
<td>Group 2</td> 
</tr> 
</table> 

et vous voulez qu'il soit comme ceci:

<table> 
<tr> 
<td class="group1">Group 1</td> 
<td>some data here</td> 
<td class="group2">Group 2</td> 
</tr> 
</table> 

Les deux solutions et Kevin'S Nick Craver ici ci-dessous fonctionnent bien. Merci les gars! Pourquoi aurais-je envie de faire une telle chose? Pour définir un calendrier pour une organisation à but non lucratif qui fournit des ateliers.

+0

Pourquoi voudriez-vous faire une telle chose? Ça pue. – mgamer

Répondre

3

Je ne suis pas sûr pourquoi vous feriez cela (je m'arrêterais et regarderais honnêtement, il y a probablement une meilleure façon).

Vous pouvez pouvez le rendre générique si. Par exemple, vous pouvez passer une fonction à .addClass(), par exemple:

$("td:contains('Group ')").addClass(function() { 
    return this.innerHTML.replace("Group ", "group"); 
}); 
0

Si votre contenu ne contiendra que « le groupe X » vous pouvez simplement supprimer les espaces et convertir le texte en bas.

Par exemple:

$('td').each(function() { 
    var className = $(this).html().replace(' ', '').toLowerCase(); 
    $(this).addClass(className); 
});