笔在这里:https://codepen.io/BradCoffield/pen/WEWXqO
我有一个 getJSON,在其中我正在处理返回的数据并使用 2 .forEach
构建应发送到 HTML 的内容
我想提取每个 .forEach
的结果,将它们连接起来并将它们附加到 ID 中。但是函数的外部区域无法访问这些变量,我不知道该怎么办。
$(document).ready(function () {
$.getJSON("https://api3.libcal.com/api_hours_grid.php?iid=000&format=json&weeks=1&systemTime=0&callback=?", function (json) {
var day0 = (json.locations[0].weeks[0].Sunday);
var day1 = (json.locations[0].weeks[0].Monday);
var day2 = (json.locations[0].weeks[0].Tuesday);
var day3 = (json.locations[0].weeks[0].Wednesday);
var day4 = (json.locations[0].weeks[0].Thursday);
var day5 = (json.locations[0].weeks[0].Friday);
var day6 = (json.locations[0].weeks[0].Saturday);
var days = [day0, day1, day2, day3, day4, day5];
var dayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
dayNames.forEach(function (foo) {
var someContent = "<li id='" + foo + '-hours'+"'><span class='day-of-week'>" + foo + ", "
});
days.forEach(function (element) {
var dayDate = element.date
var dayDay = element.rendered
if (dayDate[5] === '0') {
dayDate = dayDate.substr(6)
} else {
dayDate = dayDate.substr(5)
}
var moreContent = "" + dayDate + ":</span> " + "<span class='dates'>" + dayDay + "</li>"
});
var forHTML = someContent + moreContent;
$('#this-weeks-hours').append(forHTML);
});});
最佳答案
不能 100% 确定这是否是您的目标,但只需在与渲染调用相同的范围内声明和初始化变量即可。我修改了您的代码来执行此操作。
$(document).ready(function () {
$.getJSON("https://api3.libcal.com/api_hours_grid.php?iid=587&format=json&weeks=1&systemTime=0&callback=?", function (json) {
//content variables declared here
///////////////////////////////////////////
var someContent = '';
var moreContent = '';
///////////////////////////////////////////
var day0 = (json.locations[0].weeks[0].Sunday);
var day1 = (json.locations[0].weeks[0].Monday);
var day2 = (json.locations[0].weeks[0].Tuesday);
var day3 = (json.locations[0].weeks[0].Wednesday);
var day4 = (json.locations[0].weeks[0].Thursday);
var day5 = (json.locations[0].weeks[0].Friday);
var day6 = (json.locations[0].weeks[0].Saturday);
var days = [day0, day1, day2, day3, day4, day5];
var dayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
dayNames.forEach(function (foo) {
someContent += "<li id='" + foo + '-hours'+"'><span class='day-of-week'>" + foo + ", "
});
days.forEach(function (element) {
var dayDate = element.date
var dayDay = element.rendered
if (dayDate[5] === '0') {
dayDate = dayDate.substr(6)
} else {
dayDate = dayDate.substr(5)
}
moreContent += "" + dayDate + ":</span> " + "<span class='dates'>" + dayDay + "</li>"
});
var forHTML = someContent + moreContent;
$('#this-weeks-hours').append(forHTML);
});
});
关于javascript - 如何访问较大函数中两个嵌套 .forEach 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46058799/