2016-12-05 2 views
0

Ich muss diesen Rechner arbeiten mit Eval aber ich habe versucht, diese Arbeit mehrere Male auf verschiedene Weise jede Hilfe arbeiten würde funktionieren.Ich habe ein Problem mit diesem Rechner arbeiten mit Eval

$(document).ready(function() { 
    $(".digit").click(function() { 
    var num = $(this).text(); 
    $("#calculation").text(num); 
    }); 

    $(".operator").click(function() { 
    var math = $(this).text(); 
    $("#calculation").text(math); 
    }); 

    $(".clear").click(function() { 
    var clear = $(this).text(); 
    $("#calculation").text("0"); 
    }); 
}); 
+0

was wollen Sie tun? –

+0

Ich versuche, einen Rechner mit der Eval (ich habe es noch nie benutzt) Ich bin ziemlich neu zu jquery und ich habe Tutorials etc, aber ich kann nichts herausfinden –

Antwort

0

OK, lass es uns versuchen.

Zuerst müssen Sie den Ausdruck irgendwo speichern. In einer globalen Variablen, zum Beispiel:

var expression = ""; 

$(document).ready(function() { 
... 
}); 

Dann müssen Sie die Ziffern und Operatoren zum Ausdruck anhängen, bewerten und das Ergebnis angezeigt werden soll. Lassen Sie uns dafür eine Funktion machen:

function appendChar(char) { 
    expression += char; 
    var result; 
    try { 
     result = eval(expression); 
    } catch (e) { 
     // failure to evaluate 
     result = "error"; 
    } 
    $("#calculation").text(result); 
} 

Zum Schluss müssen Sie den Ausdruck mit clear löschen. Hier ist der gesamte Code:

var expression = ""; 
function appendChar(char) { 
    expression += char; 
    var result; 
    try { 
     result = eval(expression); 
    } catch (e) { 
     // failure to evaluate 
     result = "error"; 
    } 
    $("#calculation").text(result); 
} 

$(document).ready(function() { 

    $(".digit, .operator").click(function() { 
     appendChar($(this).text()); 
    }); 

    $(".clear").click(function() { 
     expression = ""; 
     $("#calculation").text("0"); 
    }); 
}); 

UPDATE:

Um zu zeigen, was passiert, können Sie den Ausdruck anzuzeigen sowie das Ergebnis:

function appendChar(char) { 
    expression += char; 
    var result; 
    try { 
     result = eval(expression); 
     $("#calculation").text(expression + " = " + result); 
    } catch (e) { 
     $("#calculation").text(expression); 
    } 
} 
+0

Dank für die Aufschlüsselung Ich verstehe das klar –

+0

so ich verstehe den obigen Code aber wie würde ich den gleichen Knopf funktionieren, wenn gedrückt anstelle der Gleichung automatisch zeigt –

+0

@CharlieAxsom yeah, ich denke, es wird besser sein mit einem gleichen Knopf –

0

Sie ersetzen den Text in #calculation ganz, anstatt darauf zu verketten einen mathematischen Ausdruck zu bilden.

Versuchen Sie, den folgenden Code:

$(document).ready(function() { 
    $(".digit").click(function() { 
    var num = $(this).text(); 
    var calculation = $("#calculation").text(); 
    $("#calculation").text(calculation + num); 
    }); 

    $(".operator").click(function() { 
    var math = $(this).text(); 
    var calculation = $("#calculation").text(); 
    $("#calculation").text(calculation + match); 
    }); 

    // ... remaining code truncated 
}); 

Nach einer = Schaltfläche geklickt wird, können Sie den Text aus #calculation nehmen und es zu eval Methode als Parameter übergeben. Du wirst deine Antwort bekommen.

Verwandte Themen