Incrémentation d'une chaîne de caractères

Résolu
Jizzy -  
 Jizzy -

Bonjour à tous, j'ai un projet à terminer pour la semaine prochaine et je galère au niveau du javascript. En l'occurrence, mon pb est le suivant :

dans mon code html j'ai un <p id="mwj"> 0 </p>. Disons que je veux incrémenter ce 0 à l'aide d'un bouton situé plus bas dans le code. J'associe donc ce bouton à une fonction JS du genre :

function increase(){
var nb_mwj = document.getElementById('mwj');
parseInt(nb_mwj);
nb_mwj++;
document.getElementById("mwj").innerHTML = nb_mwj;
}

Or, j'obtiens un "NaN". Je ne vois pas pourquoi, quelqu'un saurait-il m'expliquer please ? :(

1 réponse

  1. Utilisateur anonyme
     
    Bonjour

    Cette ligne
    parseInt(nb_mwj); 
    est une erreur pour deux raisons :
    Le paramètre que tu passes à parseInt est un élément, alors qu'il faut une chaîne de caractères. Tu devrais mettre nb_mwj.innerHTML
    Ensuite, tu ne fais rien du résultat de parseInt. Il faut le mettre dans une variable pour pouvoir l'utiliser. Tu as le droit de reprendre nb_mwj.
    Ce qui donne :
    nb_mwj=parseInt(nb_mwj.innerHTML);


    Il serait plus simple (et efficace) de ne pas appeler getElementNyId deux fois, et d'écrire:
    function increase(){ 
    var nb_mwj = document.getElementById('mwj'); 
    nb_mwj.innerHTML = parseInt(nb_mwj.innerHTML)+1; 
    } 
    1
    1. Jizzy
       
      Un grand merci pour tes explications et ta correction, ça marche à merveille !
      0