将不同的背景图像添加到json数组中的元素

时间:2017-01-18 22:02:22

标签: javascript jquery css json

一切正常,但是当我想将background-image添加到不同的元素时,它只是从数组中放入最后一个图像,并使用最后一个图像将css backgorund设置为所有这些图像。

$.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附加到所有后台即可。

2 个答案:

答案 0 :(得分:4)

创建var div时,您可以创建内联样式var div = "<div style='background-image: url(images/"+data[i].image+")'...

答案 1 :(得分:0)

我很确定你想迭代$('.nemkec-dev')元素。你现在正在做的是迭代背景图像并同时为所有.namkec-dev div设置背景图像。因此,自然结果是,在此脚本结束后,您将拥有所有.nemkec-dev元素和最后一个背景图像。

您可以使用 Michael Coker 解决方案并将其与其他变量一起使用,或者执行以下操作:

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