J'ai une table peuplée par un DB et Renders comme si (elle pourrait avoir un certain nombre de colonnes se rapportant à « temps », 5 colonnes, 8 colonnes, 2 colonnes, etc.):Comment définir des classes CSS incrémentielles dans chaque cellule de tableau avec jQuery?
<table id="eventInfo">
<tr>
<td class="name">John</td>
<td class="date">Dec 20</td>
<td class="**time**">2pm</td>
<td class="**time**">3pm</td>
<td class="**time**">4pm</td>
<td class="event">Birthday</td>
</tr>
<tr>
<td class="name">Billy</td>
<td class="date">Dec 19</td>
<td class="**time**">6pm</td>
<td class="**time**">7pm</td>
<td class="**time**">8pm</td>
<td class="event">Birthday</td>
</tr>
Avec jQuery, je voudrais passer par chaque ligne du tableau et définir progressivement un nom de classe supplémentaire uniquement sur les cellules de tableau où « « temps »= classe » de sorte que le résultat serait:
<table id="eventInfo">
<tr>
<td class="name">John</td>
<td class="date">Dec 20</td>
<td class="**time** **timenum-1**">2pm</td>
<td class="**time** **timenum-2**">3pm</td>
<td class="**time** **timenum-3**">4pm</td>
<td class="event">Birthday</td>
</tr>
<tr>
<td class="name">Billy</td>
<td class="date">Dec 19</td>
<td class="**time** **timenum-1**">6pm</td>
<td class="**time** **timenum-2**">7pm</td>
<td class="**time** **timenum-3**">8pm</td>
<td class="event">Birthday</td>
</tr>
J'ai seulement été capable de compter toutes les cellules de table où "class = 'time'" et non chaque ensemble dans sa propre rangée de tableau. C'est ce que j'ai essayé avec jQuery:
$(document).ready(function() {
$("table#eventInfo tr").each(function() {
var tcount = 0;
$("td.time").attr("class", function() {
return "timenum-" + tcount++;
})
//writes out the results in each TD
.each(function() {
$("span", this).html("(class = '<b>" + this.className + "</b>')");
});
});
});
Malheureusement, cela ne les résultats dans:
<table id="eventInfo">
<tr>
<td class="name">John</td>
<td class="date">Dec 20</td>
<td class="**time** **timenum-1**">2pm</td>
<td class="**time** **timenum-2**">3pm</td>
<td class="**time** **timenum-3**">4pm</td>
<td class="event">Birthday</td>
</tr>
<tr>
<td class="name">Billy</td>
<td class="date">Dec 19</td>
<td class="**time** **timenum-4**">6pm</td>
<td class="**time** **timenum-5**">7pm</td>
<td class="**time** **timenum-6**">8pm</td>
<td class="event">Birthday</td>
</tr>
Merci pour votre aide!
ce qui est le 'span' pour? Et pourquoi jouer avec '.html' quand vous pourriez utiliser' .addClass() '? http://api.jquery.com/addClass/ – dnagirl
Salut dnagirl, merci de demander ... ce qui suit a été utilisé seulement pour que je puisse voir rapidement ce qui se passait dans la fenêtre du navigateur et ne fait pas partie du problème réel. // écrit les résultats dans chaque TD .each (function() {$ ("span", ce) .html ("(class = '"+ this.className +"')"); }); –