Как добавить класс на основе содержимого элемента? - PullRequest
1 голос
/ 05 октября 2010

Предположим, у вас есть такая таблица:

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

и вы хотите, чтобы это было так:

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

И решения Ника Крейвера, и Кевина, приведенные ниже, прекрасно работают. Спасибо, парни! Почему я хотел бы сделать такую ​​вещь? Разработать расписание для некоммерческой организации, которая проводит семинары.

Ответы [ 2 ]

3 голосов
/ 05 октября 2010

Я не уверен , почему вы бы это сделали (я бы остановился и посмотрел на это честно, возможно, есть лучший способ).

Вы можете сделать его общим.Например, вы можете передать функцию в .addClass(), например:

$("td:contains('Group ')").addClass(function() { 
  return this.innerHTML.replace("Group ", "group");
});
0 голосов
/ 05 октября 2010

Если ваш контент будет содержать только «Группу X», вы можете просто удалить пробелы и преобразовать текст в более низкий.

Например:

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