Détails
passer un paramètre de type chaîne dans une fonction onclick
Je voudrais passer un paramètre (c'est-à-dire une chaîne) à une fonction Onclick. Pour l'instant, je fais ceci :
'<input type="button" onClick="gotoNode(' + result.name + ')" />'
avec result.name par exemple égal à la chaîne "Add" ;. Lorsque je clique sur ce bouton, j'ai une erreur qui dit que Add n'est pas défini. Comme cet appel de fonction fonctionne parfaitement avec un paramètre numérique, je suppose que cela a quelque chose à voir avec les symboles "" ; dans la chaîne de caractères. Quelqu'un a-t-il déjà rencontré ce problème ?
204
3
Il semble que vous construisiez des éléments DOM à partir de chaînes de caractères. Vous devez juste ajouter des guillemets autour de result.name :
Vous devriez vraiment faire cela avec des méthodes DOM appropriées.
Sachez simplement que s'il s'agit d'une boucle ou autre,
result
changera avant que l'événement ne se déclenche et vous devrez créer une bulle de portée supplémentaire pour suivre la variable qui change.Je suggère de ne même pas utiliser les gestionnaires HTML
onclick
, et d'utiliser quelque chose de plus commun commedocument.getElementById
.HTML :
JavaScript :
Modifié : Si l'exigence est de référencer l'objet global (js) dans votre code HTML, vous pouvez essayer ceci. [N'utilisez pas de guillemets (' ; ou " ;) autour de la variable].
[Fiddle][1] référence.
Javascript :
HTML :
[1] : http://jsfiddle.net/gaJTb/