将返回的api数据追加到表中

nwlqm0z1  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(380)

我试图从公共假日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);  

            }, ...
xienkqul

xienkqul1#

好吧,您正在引用一个甚至还没有生成的元素。试着先摆好table。
$(“#假日表tr:last”).append(“+element.name+”“+element.date+”);
在上面的部分中,我们说您希望向holidays表中追加一些内容,但同时该表甚至不存在(您将元素存储在名为info的变量中)。所以首先,在dom中添加这个(比如将它附加到主体中),然后使用它进行操作。这里有一个例子

$("body").append(info)
$('#holidays-table tr:last').append(...

在这之后,您可以附加任何您想要的内容(比如循环中的内容)。我希望我能帮忙!

相关问题