web-dev-qa-db-fra.com

JavaScript: SyntaxError: manquant) après la liste d'arguments

Je reçois l'erreur:

SyntaxError: missing ) after argument list

Avec ce javascript:

var nav = document.getElementsByClassName('nav-coll');
for (var i = 0; i < button.length; i++) {
    nav[i].addEventListener('click',function(){
            console.log('haha');
        }
    }, false);
};

Que signifie cette erreur?

33
Ismaël tifous

Vous avez une fermeture supplémentaire } dans votre fonction.

var nav = document.getElementsByClassName('nav-coll');
for (var i = 0; i < button.length; i++) {
    nav[i].addEventListener('click',function(){
            console.log('haha');
        }        // <== remove this brace
    }, false);
};

Vous devriez vraiment utiliser quelque chose comme JSHint ou JSLint pour vous aider à trouver ces choses. Ces outils s’intègrent à de nombreux éditeurs et IDE ou vous pouvez simplement coller un fragment de code dans les sites Web ci-dessus et demander une analyse.

39
Ted Hopp

Vous avez un extra } à beaucoup comme on le voit ci-dessous:

var nav = document.getElementsByClassName('nav-coll');
for (var i = 0; i < button.length; i++) {
    nav[i].addEventListener('click',function(){
            console.log('haha');
        } // <-- REMOVE THIS :)
    }, false);
};

Un très bon outil pour ces choses est jsFiddle . J'ai créé un violon avec votre code invalide et lorsque vous cliquez sur le bouton TidyUp, il formate votre code, ce qui le rend plus clair s'il y a des erreurs possibles avec des accolades manquantes.


[~ # ~] démo [~ # ~] - Votre code dans un violon, jouez :)


12
Nope