问题在于无法在calculateInterest函数中访问json数据,并且没有输出。
这是显示的错误:
未捕获的ReferenceError:未定义jsonResponse 在calculateInterest(script.js:36) 在XMLHttpRequest.request.onload(script.js:29)
此应用程序的重点是根据输入的数字输出年利率。所有这些都是由json数据决定的,该数据应将本金值与json值进行比较,然后每年确定利息。
这里是项目的链接。 https://github.com/BKwingwa/Interestcalculator/tree/master/InterestCalculator3
针对类似问题的所有修复程序均使用jQuery,并且仅允许我在此项目中使用纯JavaScript,因为老师的意图是在没有任何框架的情况下学习。
我已经尝试了基于w3schools的XMLHttpRequest,然后尝试在响应中加载函数,并尝试使用基于this project的XMLHttpRequest
即使在尝试在这两个不同的xmlhttprequests中都键入calculateInterest(jsonResponse)
时,我似乎仍然无法在函数中获取json数据。
window.onload = function()
{
var btn = document.getElementById('btnJson').addEventListener('click', loadJson);
var principal = document.getElementById('principal').value;
}
// -----------------------------此应用程序的目的说明------- ----------------------
///应该根据输入中的数字来引起兴趣的是HTML。 // JSON是每年利息的决定者。每年的利息意在作为产出。
function loadJson()
{
var requestURL = 'interest.json';
var request = new XMLHttpRequest();
request.open('GET', requestURL);
request.responseType = 'json';
request.send();
request.onload = function()
{
var jsonResponse = request.response;
calculateInterest(jsonResponse);
}
function calculateInterest()
{
if (principal >= jsonResponse[0].from && principal <= jsonResponse[0].up_to)
{
// return document.getElementById('paragraph').innerHTML = jsonResponse[0].interest;
console.log(jsonResponse[0].interest);
}
else if (principal >= jsonResponse[1].from && principal <= jsonResponse[1].up_to)
{
// return document.getElementById('paragraph').innerHTML = jsonResponse[1].interest;
console.log(jsonResponse[1].interest);
}
}
}
//var btn = document.getElementById('btnJSON').addEventListener('click', loadJson);
预期结果: 取决于输入中的数字,有趣的是应该在HTML中给出。 JSON是每年利息的决定者。每年的利息意在作为产出。
当前,即使JSON语法似乎正确,computeInterest函数也根本无法正常工作,因为它没有在段落元素中的HTML上输出感兴趣的内容。
提前谢谢!
答案 0 :(得分:0)
此问题现已修复。这是脚本完成后的外观链接。我已添加评论,以便对学习感兴趣的人更容易理解。我还注释掉了一些旧的东西,所以您可以看到一些被替换的东西。
链接到Github上的更新文件:https://github.com/BKwingwa/Interestcalculator/blob/master/updatedscript