2016-03-21 18 views
0

私は単純な電卓を作ろうとしています。 jQueryで呼び出されたresultというdivがあります。ボタン(数字)をクリックするたびに、値を文字列に追加します。 "5 + 2 + 3"のような文字列を作成した後、式に変更して結果を返したいとします。jQuery:ボタンをクリックするとhtml文字列に追加

今のところ私が望むのは、ボタンの値を文字列に追加することだけです。

http://codepen.io/kreitzo/pen/RapEqp

index.htmlを

<div id="calculator"> 
    <button class="value">1</button> 
    <button class="value">2</button> 
    <button class="value">3</button> 
    <button class="value">4</button> 
    <button class="value">5</button> 
    <button class="value">6</button> 
    <button class="value">7</button> 
    <button class="value">8</button> 
    <button class="value">9</button> 
    <button class="value">0</button> 
    <button class="value">+</button> 
    <button class="value">-</button> 
    <button class="value">÷</button> 
    <button class="value">*</button> 

    <div id="result"></div> 
</div> 

script.js

$(document).ready(function(){ 
    var string = $("#result"); 
    string = ""; 
    $(".value").click(function(){ 
    string += $(this).toString(); 
    }); 

}); 

答えて

1

次のコードは、あなたが式を追加して計算させるでしょう。他の計算に同じロジックを使用できるプレースホルダがあります。

var string = ""; 
$(".value").click(function() 
{ 
    if($(this).text() == "CE") 
    { 
    string = ""; 
     $("#result").text(string); 
    return; 
    } 

    if(("+,-,/,*,=").indexOf($(this).text()) >= 0 && string == "") 
    return false; 

    if($(this).text() == "=" && !isNaN(parseInt(string))) 
    { 
     var calc = 0; 
     var num 
     var add = string.indexOf('+'); 
     var sub = string.indexOf('-'); 
     var mul = string.indexOf('*'); 
     var div = string.indexOf('/'); 

     if(add >= 0) 
     {  
     num = string.split('+');  
     $.each(num,function(i) 
     { 
      calc += parseInt(num[i]); 
     }); 
     }   

     $("#result").text(calc); 
    } 
    else 
    { 
    string += $(this).text(); 
    $("#result").text(string); 
    } 
}); 

の作業例:私はヴァル()を使用してと思うだろうhttps://jsfiddle.net/01k9m1qh/1/

+0

偉大な、複数の一意の演算子シンボルを使用しているときにチェーンが機能しない理由を知っていますか?例:2 + 2 + 2 = 6、しかし2 * 2 + 2 = 4 – Apswak

+0

私は乗算ロジックを実装していないためです。ソリューションは追加のためのものであり、他のもののためのものではありません。私がソリューションで言及したように、あなたが求めていたものです。 – DinoMyte

+0

ああ、私はコメントを見ませんでした。ありがとう! – Apswak

0

が取得するために、この

$(".number, .operator").click(function(){ 
    $("#result").append($(this).html()); 
}) 
0

jQueryのテキストを使用してみてください()関数を試しますクリックされたボタンの内部テキスト現在、あなたのコードは、クリックされたオブジェクトの内部テキストではなく、クリックされたオブジェクトを文字列に追加しようとしています。ここで

JS

$(document).ready(function(){ 

    var string = ""; 

    $(".value").click(function(){ 
    string += $(this).text().toString(); 
    }); 

}); 

が動作していること、更新Codepenです:http://codepen.io/anon/pen/WwpPQY

+0

。テキストよりも良いでしょう – Keith

+0

残念なことに、テキストもvalもうまくいきません。 – Apswak

+1

ヒント: 'var string = $("#result "); string = ""; 'は意味を持ちません。 – blex

0
$(document).ready(function(){ 
$(".value").click(function(){ 
    var string = $("#result").html(); 
    string += $(this).html(); 
    $("#result").html(string); 
    }); 

    }); 
関連する問題