J'ai besoin d'ajouter une classe à une image lorsque son src est inconnu

Voilà ce que j'ai essayé

if ($(".main-template img").attr('src') != '') {
    $(this).addClass('noRelImage');
}

J'ai aussi essayé

if ($(".main-template img").src.length > 0) {
    $(this).addClass('noRelImage');
}

Sans chance

Voici à quoi ressemble le balisage:

<div class="main-template">
   <img src="">
</div>

enter image description here

J'ai lu quelques autres articles mais aucune de leurs réponses n'a résolu ce problème

0
Mika 4 nov. 2019 à 13:10

1 réponse

Votre première condition a la logique opposée et le $(this) à l'intérieur du if dépend du contexte: il doit être

var img = $(".main-template img");
if (img.attr('src') === "") {
    img.addClass('noRelImage');
}

Notez également que si vous devez ajouter une classe uniquement à des fins de style, vous pouvez éviter d'utiliser Javascript / jQuery du tout et simplement écrire un sélecteur d'attribut dans vos déclarations CSS, comme

img[src=""] {
  /* style here */
}
1
fcalderan 4 nov. 2019 à 10:23