jQuery obtenir le texte que le nombre
Ce code ne fonctionne pas:
var number = $(this).find('.number').text();
var current = 600;
if (current > number){
//do something
}
HTML:
<div class="number">400</div>
Semble qu'il y ait un problème avec la conversion de text()
de texte comme valeur de nombre.
Quelle est la solution?
Vous devez vous connecter pour publier un commentaire.
Toujours utiliser
parseInt
avec un radix (de base) en tant que second paramètre, ou vous obtiendrez des résultats inattendus:Une variante la plus populaire, cependant, est d'utiliser
+
comme un opérateur unitaire. Ce sera toujours convertir en base 10 et ne les jetez jamais une erreur, il suffit de retournerzéroNaN
qui peut être testé avec la fonctionisNaN()
si c'est un numéro non valide:+
ne sera pas de retour à zéro pour un nombre non valide, il sera de retourNaN
. L'OMI, de ce fait, il est plus idéal que parseInt(), car parseInt va tenter de trouver un numéro au début d'une chaîne mal formée, ce qui peut entraîner de la confusion (par exemple de 1 000 devient 1).+str
est la même que l'écriture deNumber(str)
.parseInt($(this).find('.number').text()||0)
.text()
Ce n'est pas une fonction. Je l'utilise et il est dit que ".texte() n'est pas une des fonctions"myInteger = parseInt(myString);
C'est une fonction standard du javascript.
Utiliser le javascript méthode parseInt (http://www.w3schools.com/jsref/jsref_parseint.asp)
N'oubliez pas de spécifier la base de la valeur de 10, qui dit parseInt que c'est en base 10.
Cela devrait faire l'affaire.
Si quelqu'un est venu ici pour essayer de le faire avec un chiffre après la virgule comme moi:
myFloat = parseFloat(myString);
Si la juste besoin d'un Int, c'est bien couvert par les autres réponses.