4

コンテンツを並べ替え、それぞれ 2 つの値を持つ div を作成する配列でループを実行しようとしています。

いろいろやってみたのですが、どうすればいいのかわかりません。

これが私がする必要があることです: 配列をループして div を作成します。各 div には、配列の 2 つの値が必要です。このような:

<div id="1">content, content 2</div>
<div id="2">content 3, content 4</div>
<div id="3">content 5, content 6</div>
<div id="4">content 7</div>

だから私はこのような配列を持っています:

var myArray = ['content', 'content 2', 'content 3', 'content 4', 'content 5', 'content 6', 'content 7'];

そして、私はこのようにループしています:

for(var i=0; i<=myArray.length; i++){

    if(currentDiv == 1){
        $('#s'+currendDivID+'').append("<p>"+myArray[i]+"</p>");
            console.log(myArray[i]);
    }

    if(currentDiv == 2){
            $('#s'+currendDivID+'').append("<p>"+myArray[i]+"</p>");
            console.log(myArray[i]);
            $('#container').append("</div>");
    }



    console.log(currendDivID);

    if(currentDiv == 3){
        currendDivID ++;
        $('#container').append("<div id=\"s" + currendDivID + "\">");
        console.log(myArray[i]);
        $('#s'+currendDivID+'').append("<p>"+myArray[i]+"</p>");
    }

    if(currentDiv == 4){
        console.log(myArray[i]);
        $('#s'+currendDivID+'').append("<p>"+myArray[i]+"</p>");
        $('#container').append("</div>");
    }



    console.log(currendDivID);

    if(currentDiv == 5){
        currendDivID++;
        $('#container').append("<div id=\"s" + currendDivID + "\">");
        console.log(myArray[i]);
        $('#s'+currendDivID+'').append("<p>"+myArray[i]+"</p>");
    }

    if(currentDiv == 6){
        if(myArray[i] == undefined){
            return;
        }
        console.log(myArray[i]);
        $('#s'+currendDivID+'').append("<p>"+myArray[i]+"</p>");
        $('#container').append("</div>");
    }


    if(currentDiv == 7){
        currendDivID++;
            if(myArray[i] == undefined){
                $('#container').append("</div>");
                return;
            }
        $('#container').append("<div id=\"s" + currendDivID + "\">");
        console.log(myArray[i]);
        $('#s'+currendDivID+'').append("<p>"+myArray[i]+"</p>");
    }

    currentDiv ++;

}

これは正常に機能しますが、各 div をハードコーディングしてカウントしてから入力する必要があります。currentDiv varで行ったように、要素の数をハードコードしないで、それを行うより良い方法はありますか?

ありがとう

4

3 に答える 3

3

モジュラス演算子を使用%して、除算後の剰余が得られるため、偶数と奇数を見つけることができます。数値を 2 で割った余りが 0 の場合は偶数、余りが 1 の場合は奇数です。

for(var i=0; i<=myArray.length; i++){        
   if(currentDiv % 2 == 0){ 

   } 
   else{

   } 
}

ループインクリメント変数 i を使用して currentDiv を実行することもできます。また、ループカウンターは、開始することで調整した余分な反復を 1 回実行していると思いますloop from i=1

for(var i=1; i<=myArray.length; i++){        
   if(i % 2 == 0){ 
        $('#s' + i + '').append("<p>"+myArray[i]+"</p>");
        console.log(myArray[i]);    
   } 
   else{
       console.log(myArray[i]);
       $('#s'+ i + '').append("<p>"+myArray[i]+"</p>");
       $('#container').append("</div>");
   } 
}
于 2012-10-20T00:47:54.117 に答える
1

モジュラス演算子を使用します。

currentDiv % 2 == 0 偶数の場合は
currentDiv % 2 == 1 奇数の場合

2 で割り、余りを比較します (http://en.wikipedia.org/wiki/Euclidean_division)。

于 2012-10-20T00:48:33.180 に答える
0
var arr=['content','content2','content3','content4','content5'];

for(var i=0;i<=arrlen;i++){

        if(i%2==0){

            if(i!=(arrlen-1)){
                if(i!=arrlen){
                    console.log(arr[i]+" "+arr[i+1]);
                }else{
                    break;
                }
            }else{

                console.log(arr[i]);
            }

        }

    }
于 2015-10-06T08:18:09.807 に答える