Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:for循环未按预期工作_Javascript_For Loop - Fatal编程技术网

Javascript:for循环未按预期工作

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("

我正在尝试设置一个循环,使用从图像返回exif数据

到目前为止,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>");
    }
}
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()
    执行最后一次调用。