我有一个
html表(里面有tbody)
jquery function1:$ .ajax - 从数据库中获取数据,并用数据行填充表格(每行都是带tds的tr)
jquery function2:计算表的行数 ($(' tbody')。find(' tr')。length)
所以2工作正常,用行填充1,但3不起作用(虽然它适用于表格,填充"手工和#34;,例如不用ajax填充的)。 / p>
注意:当我在console.log($(' table')[0])时返回:
<table>
<tbody>
<tr> <td>1</td> </tr>
<tr> <td>2</td> </tr>**
</tbody>
</table>
当console.log($(&#39; tbody&#39;)[0])返回时:
<tbody></tbody>
(它内部没有发现!)
我知道它与Ajax动态内容有关。
提前谢谢大家!
PS。 Ajax-call(真实):
function load_tours () {
$.ajax({
type: 'get',
url: 'load_tours',
data: $('#search-form').serialize(),
success:function (data) {
$('#tours_table').empty();
tableCreate(data);
}
});
};
function tableCreate (data) {
$.each( data, function (i, item) {
var tr = $('<tr>').append(
$('<td>').text(item.id),
$('<td>').text(item.name),
$('<td>').text(item.lastName);
$('#tours_table').append(tr);
});
};
行计数器:
rowCount = $("#tours_table").find('tr').length;
这里的PPS是(临时)真实页面:
http://81b29c97.ngrok.io/test2(HTML) http://81b29c97.ngrok.io/js/tours_load_filter.js(JS 1)http://81b29c97.ngrok.io/js/sort_paginate.js(JS 2)
答案 0 :(得分:0)
尝试使用.always()
事件在完成Ajax调用后计算行。
此外,您应该从success
更改为done
事件,因为第一个事件已被弃用。
弃用通知:从jQuery 3.0开始,jqXHR.success(),jqXHR.error()和jqXHR.complete()回调被删除。您可以使用jqXHR.done(),jqXHR.fail()和jqXHR.always()代替。
$.ajax({
type: 'get',
url: 'load_tours',
data: $('#search-form').serialize()
}).done(function(){
$('#tours_table').empty();
tableCreate(data);
}).always(function(){
alert($('#tours_table tr').length);
});
});