如何在數組中循環遍歷數組?

我試圖用返回的AJAX數據動態創建一系列bootstrap卡。AJAX請求帶回了12個數組(參見屏幕截圖),但是當我嘗試循環遍歷它們并將它們放在卡片上時,只有1個數組放在所有12張卡片上(參見屏幕截圖)

我不確定我的循環有什么問題,但希望有人能幫我。

這是JS代碼(很抱歉卡創建的超長線-任何關于如何縮短的建議將不勝感激)。

下面是一個可復制的示例(實際的數據變量在我的代碼中由AJAX調用填充),下面是JSFiddle:

data = [["The Old Milk Bar", "  144 Dundas Street, Thornbury", "Lorem Ipsum"], ["Little Henri", "  848  High Street, Thornbury", 'Lorem Ipsum'], ["Northern Soul", "  843 High Street, Thornbury", "Lorem Ipsum"]]

window.addEventListener('load', (event) => {
    console.log('page is fully loaded');
    test(data)
    });
    
const test = function(data) {
  console.log(data)
  for (i = 0; i < data.length; i++) {
    var results = JSON.stringify(data).split('"');
    var cafeName = results[1].replace(/[^a-zA-Z0-9éè ]/g, "");
    console.log(cafeName)
    var cafeAddress = results[3].replace(/[^a-zA-Z0-9éè ]/g, "") + "," + results[2].replace(/[^a-zA-Z0-9éè ]/g, "");
    console.log(cafeAddress)
    var cafeDescription = results[5];
    console.log(cafeDescription)
    $(".venue-name").html(cafeName);
    $(".venue-address").html(cafeAddress);
    $(".venue-description").html(cafeDescription);
    $(".share").html('<i class="fas fa-share-alt"></i>');
    $(".venue-options").html('<i class="fas fa-ellipsis-h"></i>');
    var myCol = $('<div id="col"></div>');
    var myPanel = $(
      '<div class="card-group"><div class="card card-block m-3 overflow-auto" style="width: 18rem;"><div class="card-body"><h5 class="card-title venue-name"></h5><h6 class="card-subtitle mb-2 text-muted venue-address"></h6><div class="dropdown"><div class="venue-options" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></div><div class="dropdown-menu" aria-labelledby="dropdownMenuButton"><a id="share" class="dropdown-item" href="#">Share</a><a id="addToList" class="dropdown-item" href="#">Add to List</a></div></div><div class="venue-description"></div></div></div></div>'
    );
    myPanel.appendTo(myCol);
    myCol.appendTo('#cardList');
  };
}
? 最佳回答:

你不需要打電話給JSON.stringify()split()。你已經有了一個數組,你可以直接訪問它的元素。

當您執行$(".venue-name").html(cafeName)操作時,您正在使用該類設置所有元素的HTML,而不是您正在創建的卡片。事實上,它設置了除新的之外的每一行,因為只有在這些行之后才添加。

相反,首先創建myPanel,然后設置該DIV中元素的HTML。

data = [
  ["The Old Milk Bar", "  144 Dundas Street, Thornbury", "Lorem Ipsum"],
  ["Little Henri", "  848  High Street, Thornbury", 'Lorem Ipsum'],
  ["Northern Soul", "  843 High Street, Thornbury", "Lorem Ipsum"]
]

window.addEventListener('load', (event) => {
  console.log('page is fully loaded');
  test(data)
});

const test = function(data) {
  console.log(data)
  data.forEach(([cafeName, cafeAddress, cafeDescription]) => {
    var myCol = $('<div id="col"></div>');
    var myPanel = $(
      `
      <div class="card-group">
        <div class="card card-block m-3 overflow-auto" style="width: 18rem;">
          <div class="card-body">
            <h5 class="card-title venue-name"></h5>
            <h6 class="card-subtitle mb-2 text-muted venue-address"></h6>
            <div class="dropdown">
              <div class="venue-options" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></div>
              <div class="dropdown-menu" aria-labelledby="dropdownMenuButton"><a id="share" class="dropdown-item" href="#">Share</a><a id="addToList" class="dropdown-item" href="#">Add to List</a></div>
            </div>
            <div class="venue-description"></div>
          </div>
        </div>
      </div>`
    );
    $(".venue-name", myPanel).html(cafeName);
    $(".venue-address", myPanel).html(cafeAddress);
    $(".venue-description", myPanel).html(cafeDescription);
    $(".share", myPanel).html('<i class="fas fa-share-alt"></i>', myPanel);
    $(".venue-options", myPanel).html('<i class="fas fa-ellipsis-h"></i>');
    myPanel.appendTo(myCol);
    myCol.appendTo('#cardList');
  });
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="cardList"></div>

主站蜘蛛池模板: 精品无人区一区二区三区在线| 精品一区二区三区在线播放视频| 国产一区二区在线观看| 国产精品免费大片一区二区| 精品一区二区ww| 中文字幕精品一区| 韩国精品一区二区三区无码视频 | 国产精品电影一区二区三区| 久久青草精品一区二区三区| 日本亚洲国产一区二区三区| 免费人妻精品一区二区三区| 国产日韩精品一区二区在线观看| 国产成人久久精品区一区二区| 亚洲AV无码一区二区二三区软件| 亚州国产AV一区二区三区伊在| 成人区人妻精品一区二区不卡| 亚洲一区二区三区乱码在线欧洲| 无码国产伦一区二区三区视频| 看电影来5566一区.二区| 亚洲国产成人精品久久久国产成人一区二区三区综 | 国产精品高清视亚洲一区二区| 久久久精品人妻一区二区三区蜜桃| 99精品国产高清一区二区三区| 色综合视频一区二区三区| 精品一区二区三区在线视频观看| 日韩精品福利视频一区二区三区| 欧美日韩精品一区二区在线观看 | tom影院亚洲国产一区二区 | 日本精品一区二区三本中文| 麻豆国产在线不卡一区二区| 国产精品视频一区国模私拍 | 成人中文字幕一区二区三区| 亚洲欧洲精品一区二区三区| 国产大秀视频在线一区二区| 无码精品不卡一区二区三区| 内射少妇一区27P| 精品国产日韩亚洲一区| 无码av免费一区二区三区试看| 中文字幕一区二区三区在线观看| 亚洲一区二区三区播放在线| 日韩美女在线观看一区|