2017-12-03 7 views
-1

my ifステートメントの引数がチェックしている変数の値を再設定しているように見えます。変数を定義する場合

私は、次のボタンを

<select class="demobutton" id="currencytype" style="padding-left:2.3em;"> 
<option value="BTC">BTC</option><option value="XMR">XMR</option><option value="LTC">LTC</option><option value="ZEC">ZEC</option><option value="ETH">ETH</option></select> 

を持っていると、ボタンの入力を抽出するには、スクリプト

function changeData() { 
        var currency = document.getElementById("currencytype").value; 
        var daterange = document.getElementById("rangecalendar").value; 
        var imp = document.getElementById("impetus").value;  

を使用しています。

次に、入力したデータを分析し、それに応じてウェブサイトに表示されるデータを変更します。

if (currency = 'btc') { 
         alert(currency); 
         if (daterange = '08/21/17 - 12/03/17') { 
          if (imp = '1H') { 
           document.getElementById('roioutput').innerHTML = '542%'; 
           document.getElementById('sharpe').innerHTML = '.403'; 
           document.getElementById('alpha').innerHTML = '-.193'; 
           document.getElementById('beta').innerHTML = '0.00'; 
           $('#graph img').attr('src','images/graph1hbtc.png'); 
          } 
         } 

        } 

私はコードにアラートを含めました。スクリプトでifステートメントの前に可変通貨の値を出力するためにアラートを使用すると、値は入力ボタンの値になります。しかし、if文のアラートは、変数(この場合は 'btc')に対して変数をチェックしているものの値を示しています。それは、currency = 'btc'かどうかを調べる代わりに、if文がcurrency = 'btc'を設定しているかのようです。

これはなぜですか、それを防ぐために何ができるのですか?

それは、アクションの私の完全なコードを参照してくださいステートメントは、私がチェックしています変数の再設定値であればそれは私の引数かのように表示されますhere

+0

あなたは '通貨を=」と書きます。代わりに 'currency === 'btc'' –

+0

' currency ==' btc'' –

+2

'currency = 'btc''は' = 'を使って2つの値を比較する唯一の時間ではありません – Luca

答えて

0

に行くのに役立ちます。

あなたは完全に正しいです。

if (currency = 'btc') {} 

currencyの値を変更し、エラーがない場合trueを返す(例えばcurrencyは一定です)。

2つの値を比較するには、==または===を使用する必要があります。

これはあなたのために働く必要があります。その上

if (currency === 'btc') { 
         alert(currency); 
         if (daterange === '08/21/17 - 12/03/17') { 
          if (imp === '1H') { 
           document.getElementById('roioutput').innerHTML = '542%'; 
           document.getElementById('sharpe').innerHTML = '.403'; 
           document.getElementById('alpha').innerHTML = '-.193'; 
           document.getElementById('beta').innerHTML = '0.00'; 
           $('#graph img').attr('src','images/graph1hbtc.png'); 
          } 
         } 

        } 

より多くの情報はここで見つけることができます。そして、それはあなたが持っているものだbtc'` https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators

+0

私はまだあなたが気付いていましたsingle = after daterangeとimp引数をコードの後ろに付けます。それらはまた切り替えるべきですか? –

+0

私のコードを更新しました – Luca

+0

解決策の一部であるかもしれませんが、実際には動作していません。 if文は、通貨が 'btc'の場合でも実行されません。私はif文の前とif文の中に警告を出します。 if文の前の警告は通貨の値として "btc"を返しますが、2番目の警告が表示されないのでif文は実行されません。 –

関連する問題