var dividlen= $(".Divchartsblue").size();
for(var i=0;i<dividlen;i++)
{
var divid = $(".Divchartsblue").eq(i).attr("id");
var divip = $(".Divchartsblue").eq(i).attr("ip");
var task = $(".P_Downlistnews").eq(i).attr("value");
var href = $(".a"+divid+"").eq(i).attr("href");;
var jindutiao = document.getElementById(divid);
if(jindutiao.style.width != "100%")
{
$.ajax({
url:"getftp.action",
data:{TaskName:task,ipdata:divip},
type:"POST",
dataType:"text",
success:function(data){
jindutiao.style.width = data + "%";
jindutiao.innerHTML = jindutiao.style.width;
$(".b"+divid+"").empty();
$(".b"+divid+"").append(jindutiao.style.width);
}
})
}
}
获取var dividlen= $(".Divchartsblue").size();的时候是3个,console.log(divid)也能输出三个。
但是在执行下面的时候,在ajax里面只获取到最后一个divid。前面的没反应了
用的是setinerval 方法,每隔2秒执行一次
type:“get” 就好了 让他只能一次一次的执行
使用jQuery ,如果你使用了循环 ,那你一定是哪里错过了什么 ,由于jQuery对象本来就是可以批量处理的
$(".Divchartsblue").each(function(){
var divid = $(this).attr("id");
var divip = $(this).attr("ip");
var task = $(this).attr("value");
var href = $(this).attr("href");;
var jindutiao = document.getElementById(divid);
if(jindutiao.style.width != "100%")
{
$.ajax({
url:"getftp.action",
async:false,
data:{TaskName:task,ipdata:divip},
type:"POST",
dataType:"text",
success:function(data){
jindutiao.style.width = data + "%";
jindutiao.innerHTML = jindutiao.style.width;
$(".b"+divid+"").empty();
$(".b"+divid+"").append(jindutiao.style.width);
}
})
}
打开F12 network, 你应该就只发送了最后一个请求 ,解决方法改成同步的.
$(".Divchartsblue").each(function(){
var divid = $(this).attr("id");
var divip = $(this).attr("ip");
var task = $(this).attr("value");
var href = $(this).attr("href");;
var jindutiao = document.getElementById(divid);
if(jindutiao.style.width != "100%")
{
$.ajax({
url:"getftp.action",
async:false,
data:{TaskName:task,ipdata:divip},
type:"POST",
dataType:"text",
success:function(data){
jindutiao.style.width = data + "%";
jindutiao.innerHTML = jindutiao.style.width;
$(".b"+divid+"").empty();
$(".b"+divid+"").append(jindutiao.style.width);
}
})
}
})