1

アルバムを作成できる画像共有サイトに取り組んでいます。各アルバムは並べてレンダリングされ、デフォルトでは4つのプレースホルダー画像が含まれています。私が欲しいのは、これらの画像をアルバムの最初の4つの画像に置き換えることです。

アルバムに含めることができる画像は1つだけです。このような場合、残りのプレースホルダー画像はそのままにしておきます。以下のコードでは、すべてのプレースホルダー画像が置き換えられますが、アルバムに1つ(または2つ、または3つ)の画像しか含まれていない場合、残りの画像は「../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コード:(このコードはアルバムごとに1回レンダリングされます)

<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 に答える