我从JSON API获取数据,将其与用户输入相乘,然后将该数据存储在localStorage
中。我希望更新数据,并在每次页面重新加载时重新相乘。我一直无法找到解决方案。这是我当前设置的链接
https://jsfiddle.net/GxPro/vffv7hhv/1/
HTML
<!DOCTYPE html>
<html>
<head>
<title>Testing</title>
<link rel="stylesheet" href="style.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<div id='container'>
<h2>Price of Bitcoin</h2>
<img src="img/BTC.png" />
<p id="lastPrice"></p>
<h3>Your Holdings</h3>
<p id="userBTC"></p>
</div>
<br />
<input type="number" id="userInput" />
<button id = calculate>Enter the ammount of BTC you own</button>
<script src="myScript.js"></script>
</body>
</html>
的Javascript
$.get("https://api.coinmarketcap.com/v1/ticker/", function (data) {
for (var i = 0; i < data.length - 1; i++) {
if (data[i].symbol == "BTC") {
var price = JSON.parse(data[i].price_usd);
$("#lastPrice").html("$" + price); //last Price
}
}
document.getElementById("calculate").onclick = function calculate() {
var text = document.getElementById('userInput').value;
var userAmmount = text * price;
localStorage.btc = "$" + userAmmount.toFixed(2) + " (" + text + " BTC)";
$("#userBTC").html(localStorage.btc);
}
$("#userBTC").html(localStorage.btc);
});
答案 0 :(得分:0)
我建议您只存储btc的数量,而不是整个字符串。然后,当您调用API时,检查localStorage是否具有该属性,使用它来计算结果。我更新了jsfiddle:https://jsfiddle.net/vffv7hhv/18/
$.get("https://api.coinmarketcap.com/v1/ticker/", function(data) {
for (var i = 0; i < data.length - 1; i++) {
if (data[i].symbol == "BTC") {
var price = JSON.parse(data[i].price_usd);
$("#lastPrice").html("$" + price); //last Price
if (localStorage.btc) {
$("#userBTC").html(calHolding(localStorage.btc, price));
}
}
}
document.getElementById("calculate").onclick = function calculate() {
var text = document.getElementById('userInput').value;
localStorage.btc = text;
$("#userBTC").html(calHolding(text, price));
}
function calHolding(amount, price) {
return "$" + (amount * price).toFixed(2) + " (" + amount + " BTC)";
}
});
答案 1 :(得分:0)
考虑您的代码行:
localStorage.btc
我认为您希望将数据存储在localStorage.btc
变量中,并且每当用户单击按钮时,您希望每次都将该数据相乘。根据您的代码发生的情况是,每次用户单击按钮时,localStorage.btc
中存储的数据都会被覆盖。
所以,不要这样做,而是 我会说你做了以下事情:
localStorage.btc
变量与新收到的数据相乘// [[Rcpp::depends(RcppArmadillo)]]
#include <RcppArmadillo.h>
// [[Rcpp::export]]
arma::sp_mat mult_sp_den_to_sp(arma::sp_mat& a, arma::mat& b)
{
// sparse x dense -> sparse
arma::sp_mat result(a * b);
return result;
}
// [[Rcpp::export]]
arma::sp_mat mult_den_sp_to_sp(arma::mat& a, arma::sp_mat& b)
{
// dense x sparse -> sparse
arma::sp_mat result(a * b);
return result;
}
存储到临时数据保护程序通过这种方式,您将能够保持乘以必要的值。