0

多数の画像をループし、それらを Web プロジェクトのユーザー コントロールの一部として表示する for ループがあります。

divに2つの画像を表示し、次に1つの画像、次に2つの画像などを表示できる必要があります..

2 つの画像を div に配置する次のコードがありますが、1 と 2 を交互に切り替える方法を見つけることができませんでしたか?

StringBuilder sb = new StringBuilder();
StringBuilder sbMain = new StringBuilder();

for (int i = 0; i < FADS.Count; i++)
{
    if(i % 2 == 0)
    sb.Append("<div class=\"featrow\">");

    FeatAdv fad = FADS[i];
    sb.AppendFormat("<a href=\"{0}\" target='BannerPage' title=\"{1}\">", params);
    sb.AppendFormat("<img src='{0}'/></a>", ImagePath.FromLocal(imagelocation));

    if (i % 2 != 0)
    {
        sb.Append("</div>");
        sbMain.Append(sb);
        sb = new StringBuilder();
    }
}
4

3 に答える 3

1

これを行うには、コードをほとんど変更しません。

現時点では、divすべての偶数番号の画像の前にa を開いています

if(i % 2 == 0)
    sb.Append("<div class=\"featrow\">");

奇数番号の画像ごとに閉じる

if (i % 2 != 0) // equivalently i % 2 == 1
{
    sb.Append("</div>");
    sbMain.Append(sb);
    sb = new StringBuilder();
}

3 つの単純なグループの画像が必要な場合は、条件を次のように置き換えることができます。

if (i % 3 == 0)

if (i % 3 == 2)

それぞれ。

ただし、 3 番目の要素の前にa を開き、 2 番目の要素の後にa閉じたい場合は、条件を次のように置き換えることができます。div

if ((i % 3 == 0) || (i % 3 == 2))

if ((i % 3 == 1) || (i % 3 == 2))

それぞれ。

div元のコードと同様に、ループの後にチェックして、 a を開いて閉じようとしていないことを確認する必要があることに注意してください。これは、3 の倍数よりも 1 つ多い画像がある場合に発生します。(元のコードでは、2 の倍数よりも 1 大きい。)

于 2014-07-31T12:34:39.537 に答える
-3

これはjQueryにありますが、あなたを助けることができます:

<div class="test"></div>
$(document).ready(function(){
var count=10;
    for(var i=0;i<count;i++) {
    var html='<div class="inner">';
        html +='<a href="#">Image 1</a>'
        if(i%2==0) {
           html +='<a href="#">Image 2</a>'
        }
        html +="</div>";
        $('.test').append(html);
    }

});

JSFIDDLE

于 2014-07-31T12:25:11.890 に答える