ajax 呼び出しの成功関数では、php スクリプトから取得したデータからテーブルに行を .append()ing しています。行を構築するコードは次のとおりです。
$.each(data, function(index,element) {
$('table#tblMovieList tbody').delay(200).append('<tr class="viewMovieRow">' +
'<td class="listEditMovie">' +
'<a class="linkEditMovie" name="' + element['movieID'] + '" href="#">Edit</a>' +
'</td>' +
'<td class="listDeleteMovie">' +
'<input type="checkbox" class="chkDeleteMovie" name="deleteMovies[]" value="' + element['movieID'] + '" />' +
'</td>' +
'<td class="listMovieTitle">' +
element['title'] +
'</td>' +
'<td class="listMovieDirector">' +
((element['directorFirstName'] === null) ? '' : element['directorFirstName']) + ' ' + ((element['directorLastName'] === null) ? '' : element['directorLastName']) +
'</td>' +
'<td class="listMovieLength">' +
((element['runTime'] === '0') ? '' : element['runTime']) +
'</td>' +
'<td class="listMovieMpaaRating">' +
((element['mpaaRating'] === null) ? '' : element['mpaaRating']) +
'</td>' +
'<td class="listMovieYearReleased">' +
((element['yearReleased'] === '0') ? '' : element['yearReleased']) +
'</td>' +
'<td class="listMovieSynopsis">' +
element['synopsis'] +
'</td>' +
'<td class="listMovieFormat">' +
((element['format'] === null) ? '' : element['format']) +
'</td>' +
'<td class="listMovieReleaseStatus">' +
((element['releaseStatus'] === null) ? '' : element['releaseStatus']) +
'</td>' +
'<td class="listMovieMyRating">' +
((element['myRating'] === null) ? '' : element['myRating']) +
'</td>' +
'/<tr>');
});
次に、この行を使用して、テーブルの偶数行に色を付けようとしています。
$("#tblMovieList tbody tr:even").addClass("alt");
その行を .each() 関数の直後に置くと、すべての tbody 行に色が付けられます。行をjs ファイルの他の場所に配置すると、どの行も色付けされません。
何か不足していますか?行が動的に構築されるため、これを行う必要がある別の方法はありますか? jsFiddle を作成しましたが、.each() 関数を使用して反復処理をシミュレートして行を構築する方法がわかりませんでした。