在 ajax 调用的成功函数中,我将行从 php 脚本检索到的数据中附加到表中。这是构建行的代码:
$.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() 函数模拟迭代来构建行。