jQueryの.index() .prepend()メソッドで要素の先頭に番号(インデックス)を振りたい


例えばこのようなリストがあり、

曲名の頭に曲番号を振りたいという場合。

MP3 曲目リスト
曲名 収録時間 DL
故郷 1:28  
春の小川 2:36  
朧月夜 3:55  
ABC    

まず、htmlの準備から。

対象となる表と曲名が書かれているセルを特定するためtableタグに"snglist"、tdタグに"sngmnam"とそれぞれクラス名を付ける。


<table class="snglist" border="1">
<tr>
<td colspan="3">MP3 曲目リスト</td>
</tr>
<tr>
<td>曲名</td>
<td>収録時間</td>
<td>DL</td>
</tr>
<tr>
<td class="sngmnam">故郷</td>
<td>1:28</td>
<td>&#160;</td>
</tr>
<tr>
<td class="sngmnam">春の小川</td>
<td>2:36</td>
<td>&#160;</td>
</tr>
<tr>
<td class="sngmnam">朧月夜</td>
<td>3:55</td>
<td>&#160;</td>
</tr>
<tr>
<td class="sngmnam">ABC</td>
<td>&#160;</td>
<td>&#160;</td>
</tr>
</table>

jQueryは以下の通り。


$(function(){
$(".snglist").find("td.sngmnam").prepend(function(index, html){
return index+1+". ";
});
});

ついでに一行加えてtableをゼブラ模様にし、見やすくする。


$(".snglist tr:odd").css("background-color","#eeeeee") ;

ソース全体は以下。


$(function(){
$(".snglist tr:odd").css("background-color","#eeeeee") ;
$(".snglist").find("td.sngmnam").prepend(function(index, html){
return index+1+". ";
});
});

参考サイト

Help with jQuery .prepend() usage - Stack Overflow

jQueryでテーブルに連番idの列(カラム)を追加する | webOpixel