Ajouter des cellules à un tableau
Bonjour,
j'ai le 1er code HTML ci-dessus. Je voudrais qu'à l'ouverture de la page, jQuery ajoute dans chaque ligne une cellule entre les deux présentes pour obtenir le second code HTML donné ci-après.
Donc si JavaScript n'est pas activé, j'ai juste une mise en forme statique.
Code lors de l'ouverture de la page HTML
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
<table class="listing">
<tr class="foldStartOpened level_0">
<td class="numberColumn">
<pre> 01 </pre>
</td>
<td class="codeColumn">
<pre> def function(bidon):</pre>
</td>
</tr>
<tr>
<td class="numberColumn">
<pre> 02 </pre>
</td>
<td>
<pre> """</pre>
</td>
</tr>
</table> |
Code modifiée si JavaScript fonctionne :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
<table class="listing">
<tr class="foldStartOpened level_0">
<td class="numberColumn">
<pre> 01 </pre>
</td>
<td class="foldingColumn" style="cursor:pointer;">
<pre> - </pre>
</td>
<td class="codeColumn">
<pre> def function(bidon):</pre>
</td>
</tr>
<tr>
<td class="numberColumn">
<pre> 02 </pre>
</td>
<td class="foldingColumn">
</td>
<td>
<pre> """</pre>
</td>
</tr>
</table> |
[Edit 18:50] J'y suis presque...
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
// Adding the column for the folding actions.
$("table.listing tr").each(function(){
var symbolText = '',
currentLine = $(this);
if(currentLine.hasClass("foldStartOpened")){
symbolText = '<pre> - <' + '/pre>';
}
currentLine.after('<td>' + symbolText + '<' + '/td>');
}); |
Bien entendu, le code n'est pas ajouté au bon endroit. Il me reste à trouver la 1ère colonne de la ligne trouvée...
[Edit 19:08] C'est trouvé...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
$("table.listing tr").each(function(){
var htmlText = '<td class="foldingColumn" ',
currentLine = $(this);
if(currentLine.hasClass("foldStartOpened")){
htmlText += 'style="cursor:pointer;"><pre> - <' + '/pre><' + '/td>';
}else{
htmlText += '><' + '/td>';
}
currentLine.children('td.numberColumn').after(htmlText);
}); |