Je tente de construire un carrousel avec les données provenant d'un point de terminaison. Je ne sais pas quelle taille utiliser dans le serveur, donc au début je fais un peu de traitement pour décider de la taille de l'image à utiliser. Après cela, je cache les images qui ne sont pas utilisées. Quand je fais display:none
, il émet toujours une requête HTTP et blesse donc mes performances. J'ai essayé d'utiliser remove()
au lieu de .css('display','none');
mais cela a supprimé d'autres images depuis que j'utilise la classe.Suppression de img par classe dans la boucle
Comment puis-je supprimer une image dans la boucle sans affecter les autres?
Ce les données, je reçois 10 des éléments suivants du serveur (composants).
<div class="foo-grid-img">
<img src="https://cdn.com/image/1.jpg" class="foo-big" />
<img src="https://cdn.com/image/2.jpg" class="foo-small" />
<img src="https://cdn.com/image/3.jpg" class="foo-horizontal" />
<img src="https://cdn.com/image/4.jpg" class="foo-vertical" />
</div>
<div class="foo-grid-img">
<img src="https://cdn.com/image/a.jpg" class="foo-big" />
<img src="https://cdn.com/image/b.jpg" class="foo-small" />
<img src="https://cdn.com/image/c.jpg" class="foo-horizontal" />
<img src="https://cdn.com/image/d.jpg" class="foo-vertical" />
</div>
var fooConf = [['big'],['vertical','big'],['small','small','horizontal'],['vertical','big','horizontal','horizontal'],['vertical','big','horizontal','small','small']];
for (var i = 0; i < components.length; i++) {
// elided
var fooClass = fooConf[components.length-1][i];
if("foo-"+fooClass != fooBig.attr("class")) {
cItem.find('.foo-big').css('display','none');
}
if("foo-"+fooClass != fooSmall.attr("class")) {
cItem.find('.foo-small').css('display','none');
}
if("foo-"+fooClass != fooHorizontal.attr("class")) {
cItem.find('.foo-horizontal').css('display','none');
}
if("foo-"+fooClass != fooVertical.attr("class")) {
cItem.find('.foo-vertical').css('display','none');
}
}
J'ai besoin d'un résultat final comme rendu en tant que html.
<div class="foo-grid-img">
<img src="https://cdn.com/image/1.jpg" class="foo-big" />
</div>
<div class="foo-grid-img">
<img src="https://cdn.com/image/d.jpg" class="foo-vertical" />
</div>
Je ne sais pas si je bien compris votre question. s'il vous plaît confirmer ma compréhension: vous recevez 5 images de votre API et parmi les 5 images que vous voulez en choisir une seule. Correct? –
Essayez d'utiliser $ .each() – Osama
5 ensemble d'images. comme ceux ci-dessus. ils ont tous des images avec les mêmes classes définies. Voir chaque ensemble a 4 images, je dois enlever 3 de chaque et laisser 1 par ensemble. – DarthVader