【发布时间】:2016-05-21 19:29:09
【问题描述】:
我想要达到的目标:
- 使用 ajax 获取一组结果。 (身份证、姓名等)
- 使用 1 上的 id 进行另一个 ajax 调用,但是这是在函数中。
- 在1的成功函数中,调用2。
这样导致 2 的结果是 1 的子行。
问题是 jQuery 在结果 1 之后附加了 2。我希望它会这样做
result-set-1, result-set-1-subrow;
结果集 2,结果集 2 子行;
等等
不管怎么显示
结果集-1,
结果集 2,
结果集 1-subrow,
结果集 2-subrow
这是我的代码
$.ajax({
url: ws_url + 'sessions',
success: function(result) {
$.each(result, function(index, value) {
$('#sessions').append('<tr class="details-control"><td>' + value.sessionName + '</td><td>' + value.sessionDate + '</td><td>' + value.startTime + ' - ' + value.endTime + '</td><td>' + value.Room + '</td></tr><tr><th colspan=5>Talks</th></tr><tr><th>Talk Name</th><th>Start Time</th><th>End Time</th><th>Speaker(s)</th></tr>');
getTalks(value.sessionID);
});
}
});
});
function getTalks(sessID) {
$.ajax({
url: ws_url + 'talks&sessID=' + sessID,
success: function(result) {
if (result !== "null" && result !== "undefined") {
$.each(result, function(ind, val) {
$('#sessions').append('<tr><td>' + val.talkName + '</td><td>' + val.startTime + '</td><td>' + val.endTime + '</td><td>' + val.speakers + '</td></tr>');
});
} else {
$('#sessions').append('<tr><td colspan=5> No Talks </td><td>');
}
}
});
}
<table id="sessions" class="table table-striped table-bordered">
<tr>
<th>Name</th>
<th>Date</th>
<th>Time</th>
<th>Room</th>
</tr>
</table>
【问题讨论】:
-
那是因为 AJAX 中 ASYNCRONOUS 的 A。您将不得不重构代码以使用会话对象并将子会话作为数组添加到每个
标签: jquery ajax html-table append