我正在图像共享网站上工作,您可以在其中创建相册。每个专辑并排呈现,默认情况下包含四个占位符图像。我想要的是用相册中的前四个图像替换这些图像。
问题是专辑只能包含一个图像,在这些情况下,我希望其余的占位符图像保持原样。使用下面的代码替换所有占位符图像,但是在相册仅包含一个(或两个或三个)图像的情况下,其余图像将替换为" ../ images / undefined&# 34; (其余代码工作正常,专辑第一张图像正确呈现出来。)
我错过了什么?
js-code:
if ($('.hiddenAlbumNames').length > 0){
$('.hiddenAlbumNames').each(function() {
var i = 0;
var value = $(this).val();
var valueArray = value.split(',');
$(this).parent().find('.albumThumbnail').each(function() {
$(this).attr('src', '../images/' + valueArray[i]);
i++;
});
});
};
html-code:(此代码为每张专辑渲染一次)
<div class="blog">
<div class="post">
<input class="hiddenAlbumNames" type="hidden" value="album.imageName") <- "album.imageName" is a node.js variable
<div class="albumThumbnailArea">
<img class="albumThumbnail" src='../img/bg.png'>
<img class="albumThumbnail" src='../img/bg.png'>
<img class="albumThumbnail" src='../img/bg.png'>
<img class="albumThumbnail" src='../img/bg.png'>
</div>
</div>
</div>
答案 0 :(得分:1)
尝试:
$(this).parent().find('.albumThumbnail').each(function() {
if (i<valueArray.length) {
$(this).attr('src', '../images/' + valueArray[i]);
i++;
} // else { ... something else ... }
});