以下代码中存在一些错误。 rJSON
对象包含单个sURL
和单个iURL
(通过检入console.log找到)。
但是,当imgList
条件显示each
后,它会有3个相同的sURL
和iURLs
。
您认为以下此代码存在任何问题吗?
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:数组[1],sURLS:数组[1],结果:&#34; OTHER_MEMBER&#34;}
更新:目前它有一套iURLS和sURLS,但它可以显示任意数量的iURLS(以及相同数量的sURLS)
答案 0 :(得分:0)
很可能rJSON是一个具有3个属性的对象。我已经知道至少有2个属性sURLS
和iURLS
,并且因为它迭代了三次,所以必须有第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
将始终具有相同数量的项目,并且它们的顺序相同。