2016-05-16 12 views
0

Ich kann meine Frage nicht wirklich erklären, aber ich versuche, einen Gesamtbetrag auf meiner Website zu erstellen. Ich versuche die Menge mit der Größe zu multiplizieren.Multiplizieren in JS funktioniert nicht

function total(){ 
       var x = document.getElementById("size").selectedIndex; 
       var y = document.getElementById("price"); 
       var z = document.getElementById("price2"); 
     var z = document.getElementById("quantity").value; 
       if ((document.getElementsByTagName("option")[x].value) == "XS") { 
        y.innerHTML="$"."10.00"*"a"; 
        z.value="$"."10.00"*"a"; 
       } 
       else if ((document.getElementsByTagName("option")[x].value) == "S") { 
        y.innerHTML="$"."12.00"*"a"; 
        z.value="$"."12.00"*"a"; 
       } 
       else if ((document.getElementsByTagName("option")[x].value) == "M") { 
        y.innerHTML="$"."13.00"*"a"; 
        z.value="$"."13.50"*"a"; 
       } 
       else if ((document.getElementsByTagName("option")[x].value) == "L") { 
        y.innerHTML="$"."15.00"*"a"; 
        z.value="$"."15.00"*"a"; 
       } 
       else if ((document.getElementsByTagName("option")[x].value) == "XL") { 
        y.innerHTML="$"."20.00"*"a"; 
        z.value="$"."20.00"*"a"; 
       } 
      }; 

Dieser Code bewirkt, dass das Programm nicht funktioniert.

Jede Hilfe dankbar, Lachlan

+1

Was ist der Fehler? Bitte verlinken Sie nach Möglichkeit auf eine JSBIN oder einen ähnlichen Ort. – rahulroy9202

+0

Verwenden Sie die Eval-Funktion zum Multiplizieren. –

+2

@ AkashAmin-nein, tu das nicht. – RobG

Antwort

4

Sie haben keine mimial Beispiel geschrieben, der das Problem zeigt, aber wahrscheinlich ein Problem ist, wie man den Wert von x fühlt:

var x = document.getElementById("size").selectedIndex; 

das kann mit dem erhalten des Wertes direkt ersetzt werden:

var x = document.getElementById("size").value; 

Dann haben Sie:

if (x == "XS") { 
    ... 
} 
    else if (x == "S") { 
    ... 

und so weiter. Aber alle diese if..else Aussagen können wahrscheinlich durch ersetzt werden.

Dann wird Code wie:

y.innerHTML="$"."10.00"*"a"; 
    z.value="$"."10.00"*"a"; 

Ich bin nicht sicher, was der Punkt für, vielleicht versuchen Sie Verkettung?

y.innerHTML = "$" + (10.00 * a); 
    z.value = "$" + (10.00 * a); 

wo ein ein Wert von anderswo? Und wenn Sie zwei Dezimalstellen wollen, dann:

y.innerHTML = "$" + (10.00 * a).toFixed(2); 

Oh, und beachten Sie, dass die Option, einen Wert haben kann, die auf den angezeigten Text unterschiedlich ist, so können Sie dies tun:

<option value="13.50">M</option> 

So, jetzt Sie können Sie die if..else Blöcke entfernen und nur noch:

y.innerHTML = "$" + (x * a).toFixed(2); 

x ein String sein, aber Multiplicatio n wird es zu einer Zahl zwingen.

+0

Tut mir leid, ich bin nicht sehr gut zu erklären und ich bin neu in Javascript. Danke das hat viel geholfen –