图像未定义

时间:2012-05-24 14:17:01

标签: jquery arrays undefined each

我正在图像共享网站上工作,您可以在其中创建相册。每个专辑并排呈现,默认情况下包含四个占位符图像。我想要的是用相册中的前四个图像替换这些图像。

问题是专辑只能包含一个图像,在这些情况下,我希望其余的占位符图像保持原样。使用下面的代码替换所有占位符图像,但是在相册仅包含一个(或两个或三个)图像的情况下,其余图像将替换为" ../ 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>

1 个答案:

答案 0 :(得分:1)

尝试:

    $(this).parent().find('.albumThumbnail').each(function() {
        if (i<valueArray.length) {
            $(this).attr('src', '../images/' + valueArray[i]);
            i++;
        } // else { ... something else ... }
    });