J'ai donc deux images, "safety-pin-green" et "safety-pin-blue" et je souhaite changer la source des éléments de l'image en fonction du contenu de la source lorsqu'il est appelé, ce sera pour le survol et la souris . Voici le JavaScript:

function changeImage(id) {
var src = document.getElementById(id).src;  
    if (src.search("green") != 0) {
        src = src.replace("green", "blue");
    } else {
        src = src.replace("blue", "green");
    }
    document.getElementById(id).src = src;
}   

Et la balise HTML que j'utilise:

<img id="safety-pin" src="../images/safety-pin-green.jpg" alt="Safety pin"
    onmouseover="changeImage(id)" onmouseout="changeImage(id)"></img>

Le code fonctionne presque, les images deviennent bleues, mais elles ne reviennent pas à l'image verte lorsque la souris quitte l'image, des idées pourquoi?

0
Zachary 15 janv. 2017 à 08:30

2 réponses

Meilleure réponse

À partir de la documentation MDN de recherche,

Valeur de retour

L'index de la première correspondance entre l'expression régulière et la chaîne donnée; si non trouvé, -1.

Remplacer

src.search("green") != 0

Avec

src.search("green") !== -1
4
Community 20 juin 2020 à 09:12

Je l'ai corrigé :) un simple '>' résout mon problème.

if (src.search("green") > 0) {
    src = src.replace("green", "blue");
}...
0
Zachary 15 janv. 2017 à 05:35