尝试运行以下代码,但它以我需要的方式工作:
if(my_condition){
$('body').append("<div id='loaddiv'><div>");
for(var i=1; i<=100; i++){
var dl = 0;
$('#loaddiv').load('/script/?p='+i);
dl = $('#loaddiv .standart-view tr').length;
alert(dl);
}
}
因此,我必须为每个页面获取tr元素的数量,这是具有类标准视图的父元素,以及他的父元素 - div块c id = load214235,但是在警报中不断显示零: (我尝试升级代码,在load-callback函数中添加所有代码,但仍然无效......
if(my_condition){
$('body').append("<div id='loaddiv'><div>");
for(var i=1; i<=100; i++){
var dl = 0;
$('#loaddiv').load('/folder/?p='+i, function(){
dl = $('#loaddiv .standart-view tr').length;
alert(dl);
});
}
}
+我在休息状态后仍未加载;萤火虫它只是发誓说休息不知道那么近......我怎么能摆脱这种局面?我觉得有变量和数据可见性的东西没有时间加载另一个页面,并且脚本正在运行。 Jquery已连接,其余代码正在工作,包括jquery的函数,另一个页面上的元素层次结构(tr的数量应该是)。
答案 0 :(得分:0)
首次加载是异步调用,您将其视为同步。您正在读取返回Ajax调用之前的内容。因此,为什么它始终为零。
其次,当你把它连接起来时,内容将最终写在彼此之上。你不能使用load()并期望它在循环中工作。
这是基本的想法:
(function () {
var pageCounter = 1;
var tableRowsTotal = 0;
max pageMax=10;
function loadPage() {
$.get('/folder/?p='+pageCounter, function(data){
var table = $(data).filter(".standart-view");
//or
//var table = $(data).find(".standart-view");
var rows = table.find("tbody tr");
var rowCount = rows.length;
console.log(pageCounter, rowCount);
tableRowsTotal += rowCount;
pageCounter++;
if(pageCounter<pageMax) {
loadPage();
} else {
console.log("done");
}
});
}
loadPage();
}());