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> </td> </tr> <tr> <td class="sngmnam">春の小川</td> <td>2:36</td> <td> </td> </tr> <tr> <td class="sngmnam">朧月夜</td> <td>3:55</td> <td> </td> </tr> <tr> <td class="sngmnam">ABC</td> <td> </td> <td> </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