Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery每个函数只写一条记录_Jquery_Each - Fatal编程技术网

jquery每个函数只写一条记录

jquery每个函数只写一条记录,jquery,each,Jquery,Each,我有以下代码 $.getJSON('/update-recent-stat', function(jsonData) { var counterjson = 0; $.each(jsonData, function(i, value){ var i = counterjson++; var link = jsonData[i].linkid; var time = jsonData[i].time; var value

我有以下代码

$.getJSON('/update-recent-stat', function(jsonData)
{
   var counterjson = 0;

   $.each(jsonData, function(i, value){
        var i = counterjson++;
        var link = jsonData[i].linkid;
        var time = jsonData[i].time;
        var value = jsonData[i].tagvalue;
        var type = jsonData[i].type;
        var sender = jsonData[i].sender;

        $("#DownBoxL ul li:eq("+ i +")").html("<div class=Timestamp>"+time+"</div><div class=UserName><a href=\"#"+link+"\">"+sender+"</a> <?php echo $lang['sending'] ?> "+type+"!</div><div class=TagValue>+"+value+"</div>");
     });
})
$.getJSON('/update recent stat',函数(jsonData)
{
var=0;
$.each(jsonData,函数(i,值){
var i=counterjson++;
var link=jsonData[i].linkid;
var-time=jsonData[i]。时间;
var value=jsonData[i].tagvalue;
var type=jsonData[i]。类型;
var sender=jsonData[i]。sender;
$(“#DownBoxL ul li:eq(“+i+”)).html(“+time+”+type+”!+“+value+”);
});
})
还有一个依赖文件(更新程序),用于查询数据并返回JSON文件。 现在的问题是,这段代码每次少写一条记录!有人看到我的问题了吗?

解决方案:

只需删除此行:

var i = counterjson++;
您正在将
i
重新分配给一个新变量。请尝试另一个变量:

$.each(jsonData, function(i, value){
        var j = counterjson++;

每次执行该代码块时,都会增加
i
变量。我认为这就是原因。

您应该有效地使用参数,并执行以下操作:

 $.each(jsonData, function(i, value){
        var link = value.linkid;
        var time = value.time;
        var value = value.tagvalue; //<-- Shouldn't mask variables
        var type = value.type;
        var sender = value.sender;

        $("#DownBoxL ul li:eq("+ i +")").html("<div class=Timestamp>"+time+"</div><div class=UserName><a href=\"#"+link+"\">"+sender+"</a> <?php echo $lang['sending'] ?> "+type+"!</div><div class=TagValue>+"+value+"</div>");
     });
$。每个(jsonData,函数(i,值){
var link=value.linkid;
var-time=value.time;

var-value=value.tagvalue;//为什么要重新定义
i
?我想
var-i=counterjson++;
与此有关。它似乎没有真正的用途。它有什么作用?如果无法解释,请将其删除。为什么不使用
value
参数?您没有以提供这有什么好处。他并不是真的创建一个新的
i
,只是用
counterjson++
覆盖值。你能试试
console.log(jsonData);
?你的建议很好,但它并不能解决我的问题。thx。它不能。它应该在功能上等同于你所拥有的,只需要更少的代码和更少的定制(即,更可能是四轮马车)instructions@onbids:然后请更好地解释您的问题,提供一些输入和输出示例,最好是演示。您提供的信息越多,我们就越容易帮助您,您将得到更好的答案。
$.each(jsonData, function(i, value){
        $("#DownBoxL ul li:eq("+ i +")").html("<div class=Timestamp>"+value.time+"</div><div class=UserName><a href=\"#"+value.link+"\">"+value.sender+"</a> <?php echo $lang['sending'] ?> "+value.type+"!</div><div class=TagValue>+"+value.tagValue+"</div>");
     });