我目前正在尝试建立一个循环,该循环使用piexifjs从图像返回exif数据。
到目前为止,我的Vue.js environment中piexif开发人员提供的代码可以正常工作。
用于在控制台内显示exif数据的循环如下:
for (let ifd in exifObj) {
if (ifd == "thumbnail") {
continue;
}
console.log("-" + ifd);
for (let tag in exifObj[ifd]) {
console.log(" " + piexif.TAGS[ifd][tag]["name"] + ":" + exifObj[ifd][tag]);
}
}
工作正常,但是如果我尝试对其进行编辑以返回HTML并在我的网站上显示exif信息,则它仅返回一行信息。这是代码:
for (let ifd in exifObj) {
if (ifd === "thumbnail") {
continue;
}
const exifInfo = $(".modal-exif"),
exifInfoDetail = $(".modal-exif-detail");
exifInfo.html("» " + ifd);
for (let tag in exifObj[ifd]) {
exifInfoDetail.html("<li>" + piexif.TAGS[ifd][tag]["name"] + ":" + exifObj[ifd][tag] + "</li>");
}
}
我猜我的循环正在覆盖它自己,它仅返回一个值,我想这在控制台内很好,因为在HTML内不是吗?
有人知道要更改循环以为每个条目返回一行吗?
谢谢:)
答案 0 :(得分:3)
在console.log
情况下,每次迭代都写入控制台,而在$(selector).html()
情况下,您每次迭代都覆盖html内容。 jQuery html函数状态为:
设置匹配元素集中每个元素的HTML内容。
这意味着$(".modal-exif-detail")
的html内容每次迭代都设置为一个"<li>" + piexif.TAGS[ifd][tag]["name"] + ":" + exifObj[ifd][tag] + "</li>"
。
如果要连续添加到节点,或者构建html字符串并仅在循环后执行一个html
,则需要使用append之类的东西