我正在尝试制作货币转换器,但API调用似乎没有识别出我的第二个输入。但是,它确实认识到第一个输入,这就是为什么我很困惑。
在我的console.log(data.rates.EUR)的Ajax请求中,它给了我想要的东西。我也可以console.log(currency2),我得到字符串“EUR”(或者我的currency2设置为什么,具体取决于输入的值)。但是,当我尝试运行(data.rates.currency2)时,它无法识别currency2和console.log的未定义。我是一个初学者,我觉得这可能与异步或其他东西有关。我非常感谢任何帮助,因为我整天都被这一切困扰。
谢谢!
HTML
<div class="row">
<div class="col-2">
<select class="form-control" name="" id="curr1">
<option value="USD">USD</option>
<option value="GBP">GBP</option>
<option value="EUR">EUR</option>
</select>
</div>
<div class="col-8">
<input type="text" class="form-control" id="from">
</div>
</div>
<div class="row">
<div class="col-2">
<select class="form-control" name="" id="curr2">
<option value="USD">USD</option>
<option value="GBP">GBP</option>
<option value="EUR">EUR</option>
</select>
</div>
<div class="col-8">
<input type="none" class="form-control" id="to">
</div>
</div>
<br>
<div class="col-12 text-center">
<button id="submitBtn" class="btn btn-success">Submit</button>
</div>
JS
$("#submitBtn").click(function(){
convert();
});
function convert(){
let currency1 = $('#curr1').val();
let currency2 = $('#curr2').val();
$.ajax("https://exchangeratesapi.io/api/latest?base=" + currency1
).done(function(data){
console.log(currency2);
console.log(data.rates.EUR);
console.log(data.rates.currency2);
});
}
答案 0 :(得分:0)
您只需使用索引器currency2
即可从响应中访问data.rates[currency2]
相关值。
$("#submitBtn").click(function(){
convert();
});
function convert(){
let currency1 = $('#curr1').val();
let currency2 = $('#curr2').val();
$.ajax("https://exchangeratesapi.io/api/latest?base=" + currency1
).done(function(data){
var val = parseFloat($("#from").val());
$("#to").val(val ? val * data.rates[currency2] : 0)
});
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row">
<div class="col-2">
<select class="form-control" name="" id="curr1">
<option value="USD">USD</option>
<option value="GBP">GBP</option>
<option value="EUR">EUR</option>
</select>
</div>
<div class="col-8">
<input type="text" class="form-control" id="from">
</div>
</div>
<div class="row">
<div class="col-2">
<select class="form-control" name="" id="curr2">
<option value="USD">USD</option>
<option value="GBP">GBP</option>
<option value="EUR">EUR</option>
</select>
</div>
<div class="col-8">
<input type="text" class="form-control" id="to">
</div>
</div>
<br>
<div class="col-12 text-center">
<button id="submitBtn" class="btn btn-success">Submit</button>
<div id="output"></div>
</div>
&#13;