2009-04-16 8 views

Répondre

0
x = parseInt(x)+1 //assuming input in an integer 

ou

x = parseFloat(x)+1 //assuming input is non-integer 

Vous devez forcer une conversion de type à entier de chaîne.

+0

Vous devez toujours spécifier le deuxième argument de parseInt pour éviter les surprises. –

2

Vous voulez parseInt. Vous devez fournir un argument de base, comme le mentionne Paolo, sinon il peut être interprété comme octal s'il a un 0 (ou hexadécimal, s'il a un 0x).

js> parseInt("1", 10)+1 
2 
js> parseInt("010") 
8 
js> parseInt("0x10") 
16 
+1

Vous devez toujours spécifier le second argument de parseInt pour éviter les surprises. –

+0

@Paolo Vous avez raison, mis à jour ma réponse pour y remédier –

+0

supprimé downvote. :) –

1

Vous pouvez lancer une chaîne en nombre, en utilisant la fonction Number, il fonctionnera chaque fois que le nombre est un entier ou un flotteur:

var i = Number(myValue) + 1; 
1

Comme l'a demandé (avec jQuery)

$('.vote-count-post').each(function() { 
    var n = parseInt($(this).text(), 10)+1; 
    $(this).text(n); 
}); 

Ceci ajoutera un au texte de l'élément. Dans ce cas, ajoute un à tous les votes sur cette page! (fonctionne dans firebug - dommage que ce soit seulement sur la page)

+0

Hahaha, je viens de mettre cela dans une boucle et l'ai couru 1000 fois. Des résultats amusants –

+0

Très divertissant première chose le matin! –

2

Soyez prudent avec parseInt! Vous devriez toujours spécifier le second argument, qui est la base:

$('div.c2 a').text(
    parseInt($('div.c2 a').text(),10)+1 
); 
Questions connexes