这部分是对我以前的问题的扩展:
我现在可以从我的 CI 控制器成功返回 JSON 数据,它返回:
{"results":[{"id":"1","Source":"My Source","Title":"My Title". . . .
控制器:
function outputAjax()
{
$this->load->model('my_model');
$data['results'] = $this->site_model->getInfo();
$this->output->set_output(json_encode($data));
}
这是我用来检索.ajax
请求的当前脚本:
$(document).ready(function()
{
$.ajax(
{
url: 'http://localhost/project/index.php/controller/outputAjax',
dataType:'json',
success: function(data)
{
var limit = 19; //how many json objects are needed initially
var arr = []; // item.id of objects that have been used
$.each(data.results, function(index,item)
{
if (index > limit) return false; // gets required initial json objects
arr.push(item.id); // stores used json objects id's
// whole bunch of checks on item.id , item.Title, item.Description, etc...
$("#masonry-content").append('<div class="item" ' + item.id + item.Title + ' ... </div>');
});
如上面的代码所示,我目前正在获取 JSON 数据的前 20 个对象并将它们附加到页面容器中。这工作正常,但是..
我遇到的问题是,我想time interval
用最初返回的 JSON 数据的其他对象更新已附加到页面的 20 个 div 中的内容。我觉得最好的方法是在页面上静态布局 div,因为总会有相同的数量,然后相应地更新这些 div 中的数据。
我的问题是,一旦超出初始 .ajax 调用的范围,我如何仍能访问返回的 JSON 数据。
例如:如果我让脚本设置保持原样,在我使用前 20 个 JSON 数据对象 ( ) 对容器进行初始.ajax
调用和内容之后。如何访问 JSON 数据中的其余对象?append()
item
我已经假设跟踪返回的对象的最佳选择是将每个对象的 item.id 存储在数组中arr[ ]
如果这没有意义或者它们是一种更简单的方法,请纠正我。但是,我仍然不知道如何访问剩余的 JSON 数据对象?
我觉得我好像遗漏了一些明显的东西,比如让我的 javascript 更加面向对象会有所帮助,所以我可以单独访问每个 json 对象并对其执行不同的功能,但我觉得我可能会迷失一点。