似乎我的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 :(得分:0)
似乎我的if语句的参数正在重新设置我正在检查的变量的值。
你完全正确,确实如此。
if (currency = 'btc') {}
如果没有任何错误(例如currency
是常量),则更改true
的值并返回currency
。
您应该使用==
或===
来比较两个值。
这应该适合你:
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');
}
}
}
有关详细信息,请访问:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators