javascript - 两个for循环遍历多层嵌套的json数据时,只执行一层for循环,求解?
高洛峰
高洛峰 2017-04-11 11:01:48
[JavaScript讨论组]

这是 json 数据
[

{
  "content":"ffffffff ",
  "doctorAddress":"img/1.png",
  "doctorId":1,
  "doctorName":"杨小松",
  "img":[
    {
      "headId":1,
      "imgAddress":"img/1.jpg",
      "imgAddressId":1
    },
    {
      "headId":1,
      "imgAddress":"img/2.jpg",
      "imgAddressId":2
    }
  ],

},
{
  "content":"ffffffff",
  "doctorAddress":"img/1.png",
  "doctorId":1,
  "doctorName":"杨小松",
  "img":[
    {
      "headId":7,
      "imgAddress":"img/2.jpg",
      "imgAddressId":4
    }
  ],

}

]

ajax后 用for循环拼接

    var MainCortent='';
    var MainCortentImg='';
    for (var i=0;i

'+data[i].content+'

' + '

'+data[i].doctorName+'

'+data[i].content+'

'+

+'

' + '

'; for(var j=0;j< data[i].img.length;j++){ MainCortentImg+='

'+ data[i].img[j].imgAddress+'

' } } $(".main").html(MainCortent); $(".img")html(MainCortentImg);

大概的dom结构是:

效果本来是第一个section里面的img里面放两张图片,第二发一张。
可是运行发现每个盒子里面都是三张。

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
大家讲道理
var MainCortentImg='';//加在这个循环外
for(var j=0;j< data[i].img.length;j++){
             MainCortentImg+='<p class="imgbox">'+ data[i].img[j].imgAddress+'</p>'
         }
大家讲道理

不晓得是不是这样的效果。

<body>


  <p class="main">
      <section class="image-text">
          <p class="say-lis-image-text"></p>
          <p class="say-lis-new-title"></p>
          <p class="content">
              <p></p>
              <p class="img"></p>
          </p>
      </section>
  </p>

</body>



<script>
    var html='';
    var $main = $(".main");
    for (var i in data) {

        html += '<section class="image-text">';
        html += '      <p class="say-lis-image-text"><p class="title"><h3>'+data[i].content+'</h3></p></p>';
        html += '      <p class="say-lis-new-title"><a href="#"><img src='+data[i].doctorAddress+'></a><span class="doc-name">'+data[i].doctorName+'</span></p>';
        html += '      <p class="content">';
        html += '          <p>'+data[i].content+'</p>';
        html += '          <p class="img">';
        //图片
        var imgs = data[i].img;
        for (var j in imgs){
            html += '<p class="imgbox">'+ imgs[j].imgAddress+'</p>';
        }
        
        html += '          </p>';
        html += '      </p>';
        html += '</section>';
    }
    $main.html(html);
</script>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号