Mit JavaScript innerhtml einen Wert in einem Tag mit += addieren, funktioniert nicht?

5 Antworten

Weil das innerHTML ein String ist, deswegen heißt "+" concat, also "4" + 4 = "44" statt 4 + 4 = 8

Also musst du die innerHTML mit Number() konvertieren...

Weil innerHTML ein string ist, und string + int = string + (string) int = string + string.

string - string gibt's nicht, also wird da dann int - int gemacht.


EvilMastermind  05.03.2017, 12:09

Lol ach stimmt Programmiersprachen in denen Variablen keine festen Datentypen haben sind echt verwirrend.

0

OK, es funktioniert jetzt, ich hab einfach eine Variable angelegt, und innerhtml in die Number-Funktion gepackt. Bei parseInt hat mir meine Entwicklungsumgebung einen Fehler rausgeschmissen.

var test = Number(document.getElementById("300smartphoneQualiHaustiervideo").innerHTML);
test += qualiTMP*100;
document.getElementById("300smartphoneQualiHaustiervideo").innerHTML = test;

Kp warum es einmal geht und dann nicht aber das hat definitiv mit den Datentypen zu tun oder so, beim zweiten mal ist das wohl ein String und bei einem String werden beim addieren nunmal die Zeichen aneinandergekettet.

Du könntest den String in eine Number parsen wie das geht findest du am schnellsten nüber Suchmaschienen und so seiten wie Stackoverflow. 

Kleiner Hinweis: Den Datentyp solltest du mit typeof rausfinden können.

Sry, der HTML-Code wurde nicht im Klartext übernommen, er lautet 

<span id="300smartphoneQualiHaustiervideo">8</span>