Javascript:for循环未按预期工作
我正在尝试设置一个循环,使用从图像返回exif数据 到目前为止,piexif开发人员提供的代码在我的系统中工作正常 用于在控制台内显示exif数据的循环如下所示:Javascript:for循环未按预期工作,javascript,for-loop,Javascript,For Loop,我正在尝试设置一个循环,使用从图像返回exif数据 到目前为止,piexif开发人员提供的代码在我的系统中工作正常 用于在控制台内显示exif数据的循环如下所示: for (let ifd in exifObj) { if (ifd == "thumbnail") { continue; } console.log("-" + ifd); for (let tag in exifObj[ifd]) { console.log("
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>");
}
}
for(让ifd进入exifObj){
如果(ifd==“缩略图”){
继续;
}
常量exifInfo=$(“.modal exif”),
exifInfoDetail=$(“.modal exif detail”);
html(“»;”+ifd);
for(让标记进入exifObj[ifd]){
exifInfoDetail.html(“”+piexif.TAGS[ifd][tag][“name”]+”:“+exifObj[ifd][tag]+” ”;
}
}
我猜我的循环正在覆盖它自己,它只返回一个值,我猜,这在控制台中是好的,因为在HTML中不是吗
有人知道如何改变循环,使每个条目返回一行吗
谢谢:)在
console.log
案例中,每次迭代都会写入控制台,而在$(selector.html()
案例中,每次迭代都会覆盖html内容。jquery html函数声明:
设置匹配元素集中每个元素的HTML内容
这意味着每次迭代,$(“.modal exif detail”)
的html内容都被设置为一个单独的“”+piexif.TAGS[ifd][tag][name][name][tag+”:“+exifObj[ifd][tag+” ”
您需要使用类似这样的方法,如果您想要不断地添加到节点,或者构建html字符串,并且在循环之后只执行一个
html
,不是for循环不起作用。您只是误解了jQuery.fn.html()
的工作原理。有关详细信息,请阅读。.html()
覆盖。因此,当字符串中包含所有内容时,应该将其追加到字符串,并对.html()
执行最后一次调用。