我对JavaScript,AJAX中的某些货币有疑问。 只要页面没有刷新,一切都可以正常运行。 我需要将html(选择,跨度)与本地存储同步。
因此,在刷新页面时,所有数据仍保留为本地存储-不在dom元素中。
这是代码
/*========= CAMBIO DE DIVISA ==========*/
divisas();
function divisas() {
$("#cambiarDivisa").append('<option value="USD">$ USD</option>'+'<option value="MXN">$ MXN</option>'+'<option value="EUR">€ EUR</option>')
}
/*========= CAMBIO DE DIVISA ==========*/
$("#cambiarDivisa").change(function(){
var divisaBase = "USD";
var divisa = $(this).val();
$.ajax({
url: "https://free.currconv.com/api/v7/convert?q="+divisaBase+"_"+divisa+"&compact=ultra&apiKey=MYAPIKEY",
type:"GET",
cache: true,
contentType: false,
processData: false,
dataType:"jsonp",
success:function(respuesta){
var divisaString = JSON.stringify(respuesta);
var conversion = divisaString.substr(11,6);
localStorage.setItem("respuesta", JSON.stringify(divisaString));
var respuestadivisa = JSON.parse(localStorage.getItem("respuesta"));
var divisavalue = respuestadivisa.substr(6,3);
console.log("respuesta",divisavalue);
$(".cambioDivisa").html(divisavalue);
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span class="cambioDivisa">USD</span>
<div class="divisa">
<select class="align-self-end" name="divisa" id="cambiarDivisa"
</select>
</div>
答案 0 :(得分:0)
您应该在网页启动时将值重新加载回Options元素。因此,不要将加载的数据放入ajax回调本身中,而应将其放入$(document).ready
中。
$(document).ready(function() {
var respuestadivisa = JSON.parse(localStorage.getItem("respuesta"));
var divisavalue = respuestadivisa.substr(6,3);
console.log("respuesta",divisavalue);
$(".cambioDivisa").html(divisavalue);
})