2016-10-12 3 views
1

Ich bin mir nicht sicher, warum dieses Feld nicht mit der richtigen Nummer aktualisiert wird. Es ist erwähnenswert, dass aus irgendeinem Grund jede Zahl < 1 die alert() Funktion aufrundet. Ich denke, dass alle Zahlen nur abgerundet werden, aber ich kenne keine andere Methode, um den Wert zu erreichen, der das nicht tut. Irgendwelche Vorschläge?Div Feld nicht aktualisiert

Istwert = 0,03

var citrullineChoice = document.getElementById("citrulline").getElementsByClassName("on")[0].value; 

alert 0 zurück

Istwert = 0,03

var tyrosineChoice = document.getElementById("tyrosine").getElementsByClassName("on")[0].value; 

alert kehrt 1

Code Here

+1

In Ihrem Codebeispiel verwenden Sie jQuery. Gibt es einen Grund, warum Sie jQuery nicht verwenden, um den Wert zu erhalten? – Kolby

+0

@Kolby, Geschwindigkeit und Leistung Enthusiasten;). OP könnte SizzleJS-Engine verwenden. –

+0

@Kolby vor allem, weil ich nur Javascript kenne. Dieser Code war nur ein kleiner Auszug aus meinem Javascript, also könnte ich hier etwas falsch machen ... –

Antwort

0

Hier ist ein Update für das, was Sie wollen: http://codepen.io/emiyake/pen/bwKRQP

ich den Wert auf die Funktion bin vorbei, anstatt sie als Attributwert zu Ihrem Element hinzufügen.

<li id="caffeinetwo" class="off" onclick="changeClass(this, 0.03)">250</li> 

verändert sich auch Ihr changeClass ein wenig, so dass Sie es nicht, wenn Sie ändern müssen hinzufügen oder eine Option in Ihrer Kreation Leiste entfernen.

+0

Oh mein Gott, vielen Dank. Ich habe versucht, einen saubereren Weg zu finden und wow, das war ein großartiges Update. Ich werde diese Zahlen in einer Datenbank verfolgen müssen, das hilft mir mehr als Sie wissen. –

1

Sie versuchen, die parseFloat() -Methode zu verwenden, weil JavaScript versucht, den Wert zu einem int hinzuzufügen.

var tyrosineChoice = parseFloat(document.getElementById("tyrosine").getElementsByClassName("on")[0].value); 
1

Verwenden .innerText statt .value - Sie haben keine Eingabeelemente.

jQuery-Bibliothek ist nicht auf Ihrem Beispiel hinzugefügt, gibt es eine Konsole Fehler:

pen.js:191 Uncaught ReferenceError: $ is not defined

auf

$("#perServing").html("$" + perServing); 
0

Sie sollten .getAttribute('value') statt .value

var citrullineChoice = parseFloat(document.getElementById("citrulline").getElementsByClassName("on")[0].getAttribute('value')); 

verwenden hier Ihre codepen

Verwandte Themen