我正在尝试将成功处理程序中的数据列表附加到表行,例如
function Table(data) {
var rows = '';
rows += '<tr......>'
}
function functionTwo() {
$.ajax({
..........
success: function (data) {
$('#tabletr:last').after(rows);
}
});
我写了两个简单的函数,在Table()
函数中,我正在构建一个通过行+ =&#39;&#39;来填充的表。如果functionTwo()
成功,那么结果中的数据增益应该在行+ =&#39;&#39;之后追加。在表函数中。
我该怎么做?
答案 0 :(得分:1)
在Table函数之外全局声明行或返回这样的行并修复选择器"#table tr:last"
function Table(data) {
var rows = '';
rows += '<tr......>'
return rows;
}
function functionTwo() {
$.ajax({
..........
success: function (data) {
$('#table tr:last').after(Table(data)); //Call table here
}
});
答案 1 :(得分:0)
你错过了空间#table tr:last
var rows = '';
function Table(data) {
rows = '';
rows += '<tr......>'
}
function functionTwo() {
$.ajax({
..........
success: function (data) {
$('#table tr:last').after(rows);
}
});
答案 2 :(得分:0)
请记住,这是异步运行的ajax,因此您没有传统的逐步执行。但是,利用$.Deferred
API和范围,您可以克服这个问题:
var rows = '';
// Build your rows
rows += '<tr>...</tr>';
// call ajax method and await successful response
$.ajax({ ... })
.done(function(data){
// this is where you compile both tr and data together
})
.fail(function(){
// here all you have is rows since the AJAX call failed
})
.always(function(){
// If you wanted output no matter what, that's what the .always callback is for.
// It executes after the done/fail callback. So you could populate rows with either
// the data (done) or a fallback message (fail) then actually output it here.
});
注意:我不确定您是否打算使用AJAX结果调用Table(data)
,但是如果您将其置于.done()
回调中(而不是填充{ {1}} AJAX调用的值头。)