javascript - .load() jQuery 函数返回空白 div
问题描述
提前感谢您的任何帮助!
我正在使用Crypto Charts库构建一个加密相对强弱指标工具。我已经在开始的 90 天时间范围内加载了一些硬币的图表。最终目标是从用户那里获得两个输入:
- 将新硬币添加到相对强弱工具中
- 更改相对强弱工具的时间范围
现在,我可以向 altcoin 数组添加一个新硬币addedAlt
,以及更改timeframe
变量的时间范围。我现在遇到的问题是,当使用 jQuery函数仅刷新div时,加密图表 <div id="mychart"></div>
没有加载回来。$( "#mychart" ).load(window.location.href + " #mychart" );
#mychart
我能够成功地更改数据(通过检查console.log()
),但我无法弄清楚如何仅更新/刷新#mychart
div,以便用户可以看到他们在时间范围内所做的更改并将他们最喜欢的 alt 添加到图表中以查看它的相关性强/弱。
非常感谢任何帮助!
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Relative Strength/Weakness Tool</title>
<link rel="stylesheet" href="/style.css">
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/cryptocharts"></script>
</head>
<body>
<div class="btn-div"><button class="back-btn"><a href="https://www.binance.com/">Home</a></button></div>
<h1>Relative Strength/Weakness Tool</h1>
<div id="mychart"></div>
<form class="timeframe-form">
<input type="number" class="timeframe" placeholder="90">
<br>
<input type="button", class="timeframe-btn" value="Change Timeframe (# of days)" onclick="changeTimeframe()">
</form>
<div class="rswtest">
<p class="rswtest-title">Add Your Favourite Crypto In The Box Below</p>
<form class="addAltform">
<input type="numbers" placeholder="XRP" id="submitbox">
<input type="button" onclick="newData()" id="submit-btn" value="Add Altcoin">
</form>
</div>
<script src="/chart.js"></script>
</body>
</html>
Javascript
// This is the list of default alts that we have on the chart
var defaultAlts = ["BTC", "ETH", "ADA", "BNB", "XRP", "UNI", ];
// This is the code to add the defaultAlts and submittedAlts together to form the totalList, which is what is showing on the chart.
var addedAlt = [];
var totalList = addedAlt.concat(defaultAlts);
function newData() {
var newAlt = document.getElementById("submitbox").value;
var addedAlt = [newAlt];
var totalList = addedAlt.concat(defaultAlts);
console.log(totalList);
$( "#mychart" ).load(window.location.href + " #mychart" );
};
// This is where I am creating the timeframe button so the user can change the timeframe of the tool
var timeframe = [90];
function changeTimeframe()
{
var newTimeframe = document.getElementsByClassName("timeframe")[0].value;
var timeframeInteger = parseInt(newTimeframe);
timeframe.splice(0, 1, timeframeInteger);
console.log(timeframe);
// I am currently struggling to find a way to reload the page in order to update the div #mychart. The function below is using jQuery & AJAX to be able to use the $ feature which allowes me to select a particular object/ID/class. I almost have it, I can reload the mychart ID, I just can't get it to pop up again. It just shows a blank screen
// $( "#mychart" ).load(window.location.href + " #mychart" );
};
// This is the code to retreive the data, as well as the charting library for the relative strnegth/weakness chart. You can find more detail here: icnhodler.github.io/CryptoCharts/#/roi-charts/demos
//person.firstName
CryptoCharts.roiComparison({
chart_id: "mychart",
cryptocompare_tickers: totalList,
last_days: timeframe,
options: {
colors: ["#88AA24","#EF1273","#122673","#000000"],
title: true,
chart: {
type: 'line'
}
}
});
解决方案
当您更改数据时,您将不得不重新创建图表。#mychart
是一个空的 div,所以重新加载它什么都不做。
function newData() {
var newAlt = document.getElementById("submitbox").value;
var addedAlt = [newAlt];
var totalList = addedAlt.concat(defaultAlts);
console.log(totalList);
$( "#mychart" ).empty();// empty div to be safe
CryptoCharts.roiComparison({
chart_id: "mychart",
cryptocompare_tickers: totalList,
last_days: timeframe,
options: {
colors: ["#88AA24","#EF1273","#122673","#000000"],
title: true,
chart: {
type: 'line'
}
}
});
}
推荐阅读
- java - 如何从属性文件转换为具有多种语言(如 hu)的 CSV 文件?
- javascript - 如何启用 Loopback 4 API 版本控制?
- json - Swift - 如何使用 CodingKeys 将 Int 映射到自定义枚举?
- android - 获取默认键盘的可读名称(不是包名称)
- amazon-web-services - 无法加载参数文件文件://targets.json:[Errno 2] 没有这样的文件或目录:'targets.json'
- android - 如何在 time4j 库中使用 PrettyTime?
- z3 - Z3 支持哪些 SMT-LIB 属性,为什么?
- javascript - 一个与 codecademy (JavaScript) 相关的问题
- python - 如果该行中的所有值都是假的,熊猫会删除该行
- javascript - 通过mysql回调函数将数据传递给全局变量?