我试图从公共假日api中返回一些信息,并将其显示在传单Map上、table内、弹出窗口中。
弹出窗口正在工作,数据在控制台中正确显示,但在弹出窗口本身中没有。我的代码没有预期的效果,无法向表中添加新行,其中包含每个公共假日的日期和名称(此信息根据Map显示的国家而变化)。
有什么建议/我遗漏了什么吗?
与此相关的章节:
success: function(result) {
console.log(result);
if (result.status.name == "ok") {
var countryHolidays = [];
$.each(result.data, function(index, value){
if (value.location){
var newLocation = value.location.join();
countryHolidays.push({ name: value.country, date: value.date, location: newLocation});
} else {
countryHolidays.push({ name: value.country, date: value.date, location: "Nationwide"});
}
});
var info =
`
<div id="holidays-div" class="bg-success mx-0 my-0 px-1 py-1">
<table id="holidays-table" class="table table-striped table-responsive border-0 rounded-12px mx-0 my-0 px-0 py-0">
<thead class="bg-success text-white">
<th colspan="2">Public Holidays</th>
</thead>
<tbody>
<tr><td>Name</td><td>Date</td></tr>
</tbody>
</table>
</div>
`
countryHolidays.forEach((element) => {
$('#holidays-table tr:last').append("<tr><td>" + element.name + "</td><td>" + element.date + "</td></tr>");
});
holidayMarker.addLayer(L.marker([$('#lat').text(), $('#lng').text()], {icon: holidayicon}).bindPopup(info));
};
mymap.addLayer(holidayMarker);
}, ...
1条答案
按热度按时间xienkqul1#
好吧,您正在引用一个甚至还没有生成的元素。试着先摆好table。
$(“#假日表tr:last”).append(“+element.name+”“+element.date+”);
在上面的部分中,我们说您希望向holidays表中追加一些内容,但同时该表甚至不存在(您将元素存储在名为info的变量中)。所以首先,在dom中添加这个(比如将它附加到主体中),然后使用它进行操作。这里有一个例子
在这之后,您可以附加任何您想要的内容(比如循环中的内容)。我希望我能帮忙!