2009-06-24 11 views
1

J'ai un élément d'entrée masqué que j'utilise comme compteur pour nommer plus d'éléments d'entrée générés par JavaScript. Pour obtenir la valeur du compteur i utiliseProblème de portée jQuery javascript

parseInt($('#counter').val()); 

Cependant, j'utilise cet extrait de code à plusieurs reprises dans mon code, donc je pensais qu'il serait bon de le mettre dans une fonction

function getCounter(){ 
    parseInt($('#counter').val()); 
} 

ce toujours renvoie undefined, tandis que l'exécution de l'extrait de code renvoie la valeur correcte. Cela se passe de plusieurs façons que j'ai essayé de défeining la fonction, comme une fonction à l'intérieur d'un $ (function() {}), comme une fonction globale, etc. Comment est-ce que je corrige la portée?

Répondre

6

Ajouter "retour" à votre déclaration de retour :)

function getCounter(){ 
    return parseInt($('#counter').val()); 
} 
+0

Wow. Je me sens stupide. Je suppose que je suis trop habitué à rubis en ce moment. – Craig

+0

Ne vous sentez pas bête ... c'est toujours le petit, les choses supposées qui sont impossibles à attraper. Cela prend juste une nouvelle paire d'yeux :) –

+0

La seule chose qui ne va pas avec la solution est qu'elle doit avoir la base incluse. retourne parseInt ($ ('# counter'). val(), 10); donc vous ne rencontrez pas le problème Octal. – epascarello

2

Que diriez-vous d'ajouter un retour

function getCounter(){ 
    return parseInt($('#counter').val()); 
}