1

我正在开发一个可以创建相册的图像共享网站。每个相册并排呈现,默认包含四个占位符图像。我想要的是用相册中的前四张图片替换这些图片。

问题是一张专辑只能包含一个图像,在这些情况下,我希望其余的占位符图像保持原样。使用下面的代码替换所有占位符图像,但在相册仅包含一个(或两个或三个)图像的情况下,其余图像将替换为“../images/undefined”(其余的代码工作正常,专辑的第一张图片被正确渲染)。

我错过了什么?

js代码:

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 代码:(此代码为每张专辑呈现一次)

<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>
4

1 回答 1

1

尝试:

    $(this).parent().find('.albumThumbnail').each(function() {
        if (i<valueArray.length) {
            $(this).attr('src', '../images/' + valueArray[i]);
            i++;
        } // else { ... something else ... }
    });
于 2012-05-24T14:29:11.333 回答