it-swarm.com.de

Wie füge ich einen ganzzahligen Wert mit Javascript (jquery) zu einem Wert hinzu, der eine Zeichenfolge zurückgibt?

Ich habe einen einfachen HTML-Block wie:

<span id="replies">8</span>

Mit jquery versuche ich, dem Wert eine 1 hinzuzufügen (8).

var currentValue = $("#replies").text();
var newValue = currentValue + 1;
$("replies").text(newValue);

Was passiert ist, dass es so aussieht:

81

dann

811

nicht 9, was die richtige Antwort wäre. Was mache ich falsch?

86
rball

parseInt () erzwingt den Typ Integer oder NaN (keine Zahl), wenn die Konvertierung nicht möglich ist.

var currentValue = parseInt($("#replies").text(),10);

Der zweite Parameter (Radix) stellt sicher, dass er als Dezimalzahl analysiert wird.

Parse int ist das Tool, das Sie hier verwenden sollten, aber wie jedes Tool sollte es korrekt verwendet werden. Wenn Sie parseInt verwenden, sollten Sie immer den radix-Parameter verwenden, um sicherzustellen, dass die richtige Basis verwendet wird

var currentValue = parseInt($("#replies").text(),10);
28
Jon P

Die Ganzzahl wird in eine Zeichenfolge konvertiert und nicht umgekehrt. Sie wollen:

var newValue = parseInt(currentValue) + 1
25
Chuck

parseInt hat bei mir im IE nicht funktioniert. Also habe ich einfach + für die gewünschte Variable als Ganzzahl verwendet.

var currentValue = $("#replies").text();
var newValue = +currentValue + 1;
$("replies").text(newValue);
9
Gareth Nel

In Bezug auf die oktale Fehlinterpretation von .js - habe ich gerade ...

parseInt(parseFloat(nv))

und nach dem Testen mit führenden Nullen kam jedes Mal mit der richtigen Darstellung zurück.

hoffe das hilft.

4
Bill Ortell

Ihr Code sollte so aussehen:

<span id="replies">8</span>

var currentValue = $("#replies").text();
var newValue = parseInt(parseFloat(currentValue)) + 1;
$("replies").text(newValue);

Hacks AND Tricks

2
rajeev

um eins zu erhöhen kann man sowas machen

  var newValue = currentValue ++;
1
alex

Sie können die Variable mit 1 multiplizieren, um JavaScript zu zwingen, die Variable in eine Zahl für Sie umzuwandeln, und sie dann zu Ihrem anderen Wert hinzuzufügen. Dies funktioniert, weil die Multiplikation nicht wie die Addition überladen ist. Einige mögen sagen, dass dies weniger klar ist als parseInt, aber es ist eine Möglichkeit, dies zu tun, und es wurde noch nicht erwähnt.

1
Ryan
var month = new Date().getMonth();
var newmon = month + 1;
$('#month').html((newmon < 10 ? '0' : '') + newmon );

Ich habe einfach Ihr Monatsproblem behoben. Das Array getMonth beginnt von 0 bis 11.

1
Adeel Ishfaq

Fügen Sie einfach ein Pluszeichen vor dem Textwert ein

var newValue = +currentValue + 1;
0
Agorreca