javascript - 将响应结果循环到 HTML 列表
问题描述
我的目标是将所有内容放在 placeResult 中并将其加载到列表中。您的列表如下所示
每张照片上都有<li>
来自阵列的新照片、来自阵列响应的新地址和评级。此处的示例 placeResult 响应:
{formatted_address: "1111 Example Rd, CityName, State 33333, USA", name: "Ruby Tuesday", photos: Array(10), rating: 4.1},
{formatted_address: "2222 Example Rd, CityName, State 44444, USA", name: "McDonalds", photos: Array(10), rating: 3.1},
{formatted_address: "3333 Example Rd, CityName, State 55555, USA", name: "Burger King", photos: Array(10), rating: 2.1}
我最好的猜测是我需要一个辅助循环来处理这个问题。目前它只是让我重复来自同一位置的同一张照片并填充<li>
.
代码
if (placeResult.photos) {
const ulList = document.createElement('ul');
infoPane.append(ulList);
const liList = document.createElement('li');
ulList.append(liList);
for (var i = 0; i < placeResult.name.length; i++) {
console.log("PlaceResult", placeResult.formatted_address);
const firstPhoto = placeResult.photos[0];
const photo = document.createElement('img');
photo.classList.add('hero');
photo.src = firstPhoto.getUrl()
liList.appendChild(photo);
}
}
解决方案
您可能应该重写 8 行:
const firstPhoto = placeResult[i].photos[0];
或者你在循环退出条件中犯了一个错误,也许你的意思是:
for (var i = 0; i < placeResult.length; i++) { .. } //iterate over places array
//or..
for (var i = 0; i < placeResult.photos.length; i++) { .. } // iterate over photos array
推荐阅读
- python - 当从前一个变量中减去新值时,如何中断?
- python - 在 Python 中使用字符串方法进行网页抓取的问题
- typo3 - 无法在typo3中保存模板常量
- kubernetes - 当 PVC 附加到具有多个副本的部署时,它实际上是如何工作的?
- android - 文件的结构是怎样的?
- python - 不一致 - 从数据框中删除行仅部分有效
- firebase - 无法理解 Firestore 批量更新 - Flutter
- distributed - Multi-Raft 如何将节点分组在一起?
- pandas - Pandas MultiIndex 操作
- function - 如何在 Kotlin 中间接调用函数