我有一个带有以下代码的html文件:
<script>
$(function () {
$("#RadniNalog").click(function () {
$("#AdminContent").html();
$("#AdminContent").append("<button class='btn1'>Novi nalog</button><br><br>");
$.ajax({
type: "GET",
url: "/RadniNalog/Lista",
contentType: "application.json; charset=utf-8",
dataType: "json",
success: function (data) {
var htmlToAppend;
$("#RadniNalog").addClass("activated");
htmlToAppend += "<table>";
htmlToAppend += "<tr><th>Broj naloga</th></tr>";
$.each(data, function (index, item) {
htmlToAppend += "<tr><td>" + data[index].brDok + "</td></tr>";
});
htmlToAppend += "</table>";
$("#AdminContent").append(htmlToAppend);
},
error: function () {
alert("error");
}
});
});
});
</script>
该文件中的其他内容只有div #AdminContent
和按钮#RadniNalog
。
我从API获取数据,并构建了需要附加在页面上的字符串。问题是我的页面出现了
undefined
<table>
//everything else it needs to
因此,您可以看到问题是undefined
的一部分。我尝试跟踪它何时发生以及何时在我向我的div append
时发生。后来我怀疑是在each
循环上,所以我将其删除,并再次显示undefined
并在其后为空表。
那为什么要附加undefined
?出于某种原因,它两次运行了此功能。
编辑:我已经声明了var htmlToAppend = "Something"
,而不是undefined
它显示了Something
,但是为什么呢?
答案 0 :(得分:0)
更改此行:
var htmlToAppend;
对此:
var htmlToAppend = "";
这就是为什么在第一次追加之后它将包含初始值(为空字符串)的原因。 (不是您的示例中未定义的内容或“东西”)
答案 1 :(得分:-1)
var htmlToAppend =“”;
创建var时需要分配空字符串。以后,您可以使用运算符“ + =”。它将文本添加到var htmlToAppend的现有内容中。