0

我从具有 200 个 ID 的 PHP 文件返回一个 JSON 数组。(身份证号)。我只想有 18 个这些 ID,这样我只将 18 个 ID 发送到一个新的 PHP 文件,然后在 2 秒后,我想将 JSON 的下一个 18 个 ID 也发送到新的 PHP 文件,直到那里JSON 数组中不再有要发送的 ID。

    $.get('get.php?randomize=1', function(data) {

        var json = data;

        $("#wallpaper").load('get_random.php?json_18=' + encodeURI(data), hideLoader());    

    });

如您所见,我已将 JSON 存储在一个名为 json 的变量中。但我不知道如何为每个 18 个 ID 拆分它。我已经阅读了 jQuery 中的 .each 函数,但我不太了解。我希望有人能帮助我。

4

3 回答 3

2

http://jsfiddle.net/2bZHP/4/

var data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var spliceAt= 5;
var trigger = setTimeout(function() {
  var toSend;
  if(data.length>spliceAt)
  {
        var left= data.slice(0,spliceAt);
        var right = data.slice(spliceAt);
        data = right;
        toSend = left;
        setTimeout(arguments.callee, 2000);
  }
  else
  {
      toSend = data;
  }
  //$("#wallpaper").load('get_random.php?json_18=' + encodeURI(toSend), hideLoader());
  alert(toSend);
}, 2000);​
于 2012-04-29T16:53:39.590 回答
1
$.get('get.php?randomize=1', function(data) {

   var json = data;
   for(i=0;i<n;i++)
   {
      setTimeout("$('#wallpaper').load('get_random.php?json_18=' + encodeURI(json.slice(i*18,(i*18)+18)), hideLoader());", i*20);
   }    

});

& 检查一下,可能 setTimeout 的语法有一些错误,没有检查。

于 2012-04-29T17:03:17.350 回答
1

来自jQuery 文档

$.each([52, 97], function(index, value) { 
  alert(index + ': ' + value); 
});

将会呈现:

0: 52
1: 97

因此,该函数遍历每个元素,并对每个元素应用一个函数,传递数组中的项目索引和项目本身。

您可以通过这种方式使用 slice() 函数:

var taken = 0, step = 18;
var subset18;
while (taken < json.length) {
    subset18 = json.slice(taken, taken + step);
    taken += step;
    // do something with subset18
}

http://www.w3schools.com/jsref/jsref_slice_array.asp

于 2012-04-29T17:03:26.633 回答