1

下面的代码有一些错误。该rJSON对象包含单个sURL和单个iURL(通过检查 console.log 找到)。
但是当条件imgList后显示时each,它有3个相同的sURLiURLs在其中。

你看到下面这段代码有什么问题吗?

C.forgotIt = function (page, rJSON) {
    var tempPage = page;
    var imgList = "";

    $.each(rJSON, function (index, value) {
        imgList += "<a href='" + rJSON.sURLS + "'><img class='hsImage' src='" + rJSON.iURLS + "' /></a>";
    });

    page.find('.hsImages').html("<div class='imgListCont'>" + imgList + "</div>");
};

编辑:rJSON 通过控制台看起来像这样:{iURLS: Array[1], sURLS: Array[1], RESULT: "OTHER_MEMBER"}

更新:目前它有一组 iURLS 和 sURLS,但它可以显示任意数量的 iURLS(和相同数量的 sURLS)

4

1 回答 1

0

rJSON 很可能是具有 3 个属性的对象。我已经知道至少有 2 个属性sURLSiURLS,并且由于它迭代了 3 次,所以必须有第 3 个未使用的属性。(通过对 OP 的编辑确认)

要使您当前的代码正常工作,您根本不需要 $.each 因为您没有数组。

 C.forgotIt = function (page, rJSON) {
     var tempPage = page;
     var imgList = "<a href='" + rJSON.sURLS + "'><img class='hsImage' src='" + rJSON.iURLS + "' /></a>";
     page.find('.hsImages').html("<div class='imgListCont'>" + imgList + "</div>");
 };

更新您的编辑:

您需要在每个属性上使用 $.each,因为属性包含数组。

 C.forgotIt = function (page, rJSON) {
     var tempPage = page;
     var imgList = "";
     $.each(rJSON.sURLS,function(i) {
         imgList += "<a href='" + rJSON.sURLS[i] + "'><img class='hsImage' src='" + rJSON.iURLS[i] + "' /></a>";
     });
     page.find('.hsImages').html("<div class='imgListCont'>" + imgList + "</div>");
 };

这假设sURLS并且iURLS将始终具有相同数量的项目并且它们的顺序相同。

于 2013-01-29T19:49:35.117 回答