2016-04-05 16 views
1

görüntü ekranı: aşağıdaki gibijQuery Ben aşağıdaki gibi bir div yapıya sahip mesele

<div id="image0" style="margin-bottom:10px; "></div> 
<div id="image1" style="margin-bottom:10px; "></div> 
<div id="image2" style="margin-bottom:10px; "></div> 
<div id="image3" style="margin-bottom:10px; "></div> 
<div id="image4" style="margin-bottom:10px; "></div> 

Benim jQuery kodu: res [0] ise Benim durumumda

var res = question.text.split(imgQues); 
    if (question.image != '') { 
     for (var i = 0; i < res[0]; i++) { 
      jQuery('#image' + "" + i).html(question.image); 
     } 
    } else { 
     jQuery('#image' + "" + i).html(''); 
    } 

"5" kod 5 görüntüyü gösterecek ve res [0] değeri "1" ise, o zaman onun 1 görüntüsü olacak. Benim Yukarıdaki kod ile

, başlangıçta 5 görüntüler ama sonraki sefer için hala değil 1.

+0

'## her zaman açık' # görüntüsünü deneyin. – Justinas

+1

Muhtemelen sizin 'else' undefined' i 'değişkeni var –

+0

Bu tanımlanmamış bir soru, kapsam dışında bir döngü değişkenini nasıl aşabileceğinizi düşünün ... konsoldaki hatalara dikkat edin – Zafta

cevap

1

Bunu yaptığınız gibi, her seferinde div s içeriğini değiştiriyorsunuz. res[0], div s toplam sayısından daha küçük olduğunda, daha büyük kimliklere sahip div s dokunulmadan bırakılır.

Bu sorunu çözmek için önce, bu görüntünün toplam sayısını div s tanımlamanız gerekir, örneğinizde, bunlardan en fazla 5 tane vardır.

böylece: şekilde yapmak daha uygun olabilir, Alternatif

var max = 5; 
var res = question.text.split(imgQues); 
var i; 
// Clear them out first 
for (i = 0; i < max; i++){ 
    jQuery('#image' + "" + i).html(''); 
} 
if (question.image != '') { 
    for (i = 0; i < res[0]; i++) { 
     jQuery('#image' + "" + i).html(question.image); 
    } 
} 

, yani bir yok: var max = 5;

Şimdi kodunu değiştirmek biraz nedenle bu büyük kimlikleri temizlemek s kaç resim div izlemek gerekir vardır:

HTML:

<div id="image-container"></div> 

CSS:

.my-image { 
    margin-bottom:10px; 
} 

JavaScript:

var imgContainer = jQuery("#image-container"); 
imgContainer.html(""); // Clear contents 
if (question.image != '') { 
    var res = question.text.split(imgQues); 
    for(var i = 0; i < res[0]; i++){ 
     var newImage = jQuery("<div class=\"my-image\"></div>"); 
     newImage.html(question.image); 
     imgContainer.append(newImage); 
    } 
} 
+0

Fikir için teşekkür ederiz –

0

Oh div temizlemek unuttum 5 görseli. Şuan çalışıyor. Teşekkür ederim.

1
for (var j = 0; j < res; j++) { 
     for (var i = 0; i < res[j]; i++) { 
      $('#image' + "" + i).html(question.image); 
     } 
    } 

Bunun gibi iki döngü eklemelisiniz.

+0

Fikir için teşekkürler –

İlgili konular