連番idカラムを追加するシンプルな例

たとえばこんなテーブルがあります。

html
<table id="sample">
<tr>
<td>果物</td>
<td>オレンジ</td>
</tr>
<tr>
<td>果物</td>
<td>パイナップル</td>
</tr>
<tr>
<td>野菜</td>
<td>キャベツ</td>
</tr>
</table>

jQueryは次のようになります。
「prepend」で一番要素の最初(左の列)に追加します。
eachは0から始まるのでi+1にすることで「1」から表示するようにします。

javascript
$(function() {
$('#sample tr').each(function(i) {
$(this).prepend('<td>'+ (i+1) +'</td>');
});
});

最初の行にthがある例

テーブルの最初にはタイトル(th)を入れることが多いですよね。
次は最初の行にthがあった場合の処理です。

html
<table id="sample">
<tr>
<th>種類</th>
<th>名称</th>
<tr>
</tr>
<td>果物</td>
<td>オレンジ</td>
</tr>
.
.
.
</table>

繰り返し回数が0回(最初の行)だったら「id」という文字列でthを追加、それ以外だったら連番を追加します。

javascript
$(function() {
$('#sample tr').each(function(i) {
if(i != 0) {
$(this).prepend('<td>'+ i +'</td>');
} else {
$(this).prepend('<th>id</th>');
}
});
});

最初のthで1つカウントされてますのでi+1する必要はないですね。

idの桁数をそろえる

1とか10とか100とか桁数がばらばらだとかっこ悪いですよね。
ちょっと脱線しますが、桁数の低い物は先頭に0を付ける処理をして揃えてみます。

javascript
function convertNum(num, figures) {
var str = String(num);
while (str.length < figures) {
str = "0"+str;
}
return str;
}
$(function() {
$('#sample tr').each(function(i) {
if(i != 0) {
$(this).prepend('<td>'+ convertNum(i, 3) +'</td>');
} else {
$(this).prepend('<th>id</th>');
}
});
});

「convertNum() 」の第一引数に元の数字、第二引数には桁数を入れます。

参考サイト: 【JavaScript】数値の桁を“0”で埋めて揃える