web-dev-qa-db-fra.com

jQuery récupère le texte sous forme de numéro

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>

Il semble y avoir un problème avec la conversion de text() d’une valeur de type texte en nombre.

Quelle est la solution?

33
James

Utilisez toujours parseInt avec un fond (base) comme second paramètre, sinon vous obtiendrez des résultats inattendus:

var number = parseInt($(this).find('.number').text(), 10);

Une variante populaire consiste toutefois à utiliser + en tant qu’opérateur unitaire. Cela convertira toujours avec la base 10 et ne jettera jamais une erreur, il suffit de retourner zéro NaN qui peut être testé avec la fonction isNaN() s'il s'agit d'un nombre invalide:

var number = +($(this).find('.number').text());
106
RoToRa

Utilisez la méthode javascript parseInt ( http://www.w3schools.com/jsref/jsref_parseint.asp )

var number = parseInt($(this).find('.number').text(), 10);
var current = 600;
if (current > number){
     // do something
}

N'oubliez pas de spécifier la valeur de base 10, qui indique à parseInt qu'elle se trouve en base 10.

3
Matt
var number = parseInt($(this).find('.number').text());
var current = 600;
if (current > number)
{
     // do something
}
1
Thys
number = parseInt(number);

Cela devrait faire l'affaire.

1
Nilks