2017-01-18 7 views
0

すべてが機能していますが、background-imageを別の要素に追加する場合は、配列の最後のイメージを置いて、最後のイメージを持つすべてにcss backgorundを設定します。json配列の要素に別の背景イメージを追加する

$.get('con.php',function(data) { 
    var data = JSON.parse(data); 
    for(i = 0; i < data.length; i++) { 
     var div = "<div class='nemkec-dev' id='"+data[i].id+"'>"+"<h1>"+ data[i].text+"</h1>"+"<p>"+ 
     data[i].text2+"</p>"+"<img src='images/"+data[i].image+"'/>"+"</div>"; 
     $('body').append(div); 
     var image = data[i].image; 
    } 
    $.each(data, function(i, dat) { 
     $('.nemkec-dev').css('background-image','url(images/'+dat.image+')'); 
    }); 

画像を要素として表示します。しかし、私はCSSルールを設定したいときには動作しません。 背景にすべてlast-imageを追加するだけです。

+0

を?あなたは何を達成したいですか? –

+1

背景が同じ画像に設定されているdivでラップされた画像要素を作成するのはなぜですか? :/述べたように、ここでの目標は明確ではありません。 –

+1

セレクタ '' .nemkec-dev''がすべての要素と一致するため、最後の画像はすべての要素に設定されます。各要素の反復が設定され、最後の要素が残ります。 –

答えて

4

var divを作成するときに、インラインスタイルvar div = "<div style='background-image: url(images/"+data[i].image+")'...

+0

またはもしそれらを分離したいのであれば、これを代わりに使ってください。 '$(div).appendTo(' body ')css(' background-image '、' url(images/'+ data [i] .image +') ') 。もちろんループ内。 –

+0

@Michael Coker、あなたは男です。ありがとう:) – NemanjaD

+0

@NemanjaD fo sho! –

0

を作成することができ、私はあなたが$('.nemkec-dev')以上の要素を反復処理したいかなり確信しています。あなたは現在、背景画像を繰り返して、一度に.namkec-dev divのすべての背景画像を設定しています。だから自然な結果は、このスクリプトが終了した後、最後の背景画像を持つすべての要素があることです。

あなたはマイケル・コーカー溶液で行くと、他の変数とのラインでそれらを使用するか、またはこのような何か行うことができます:あなたが例を投稿 `data`とそれ働いスニペットことはできます

var i = 0; 
$('.nemkec-dev').each(function() { 
    $(this).css('background-image', data[i].image); 
    i++; 
}); 
+0

'i'の値は何ですか? –

+1

これはインラインスタイルも生成することに注意する価値があります。 –

+0

@MichaelCokerはい、あなたは完全に正しいです。インラインでは、HTMLコードでdivを作成する際に、それらを使用することを意味していました。 –

関連する問題