如何迭代json数据并使用jquery在div占位符中显示它

时间:2013-12-02 21:08:54

标签: jquery arrays json

我有一个横幅管理脚本。在行动页面中,jquery后期流程实现如下:

$.ajax({
  type: 'post',
  url: 'ajax/impressions.php',
  data: {placeholders: bannerPlaceholders.join(',')},
  success: function (response) {
    if(response) {
      for (var placeholderId in response) {
        var x = '<a id="banner-'+response[placeholderId]['banner_id']+'" class="banner-tracker" href="'+response[placeholderId]['href']+'" target="_blank">';   
        x += '<img alt="'+response[placeholderId]['href']+'" src="storage/'+response[placeholderId]['src']+'" />';
        x += '</a>';
        $('#banner-placeholder-'+placeholderId).html(x);                        
       }
     }
   }
});

并且数据如下:
{"1":{"banner_id":"1","src":"banner125x125.gif","href":"http://stackoverflow.com"}}
最后一个像这样的html占位符:<div id="banner-placeholder-1" class="banner-placeholder" style="width:125px;height:125px;border:1px solid grey;"></div>

我的问题:横幅未显示在占位符中。我没有管理我的工作。你能帮帮我,我如何在占位符中展示横幅?
亲切的问候。

2 个答案:

答案 0 :(得分:0)

看起来你正试图设置不存在的div的html。在each块的末尾,您设置$('#banner-placeholder-{id}').html - .html将设置该div的内部html。但是,你不会看到这个,因为你的dom中可能没有#banner-placeholder-3

请尝试附加到页面中的现有元素。例如,你可以这样做:

$('body').append(x)

答案 1 :(得分:0)

我认为这是因为banner-placeholder类,请尝试删除它:

$('#banner-placeholder-'+placeholderId).html(x).removeClass('banner-placeholder');

如果不起作用请发表评论。