Javascript jQuery函数多次运行
我有一个html文件,其中包含以下代码:Javascript jQuery函数多次运行,javascript,jquery,Javascript,Jquery,我有一个html文件,其中包含以下代码: <script> $(function () { $("#RadniNalog").click(function () { $("#AdminContent").html(); $("#AdminContent").append("<button class='btn1'>Novi nalog</button><br><br&g
<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时发生。后来我怀疑每个循环都有问题,所以我删除了它,它再次显示未定义的,然后清空表
那么为什么它要附加未定义的?出于某种原因,它似乎运行了此函数两次
编辑:我已经声明了var htmlToAppend=“Something”
,它显示的不是未定义的,而是Something
,但仍然是为什么?更改此行:
var htmlToAppend;
为此:
var htmlToAppend = "";
这就是为什么在第一次追加之后,它将包含一个空字符串的初始值。(并非如您的示例中所示的未定义或“某物”)var htmlToAppend=“”
创建变量时需要分配空字符串。稍后使用运算符“+=”。它将文本添加到var htmlToAppend的已有内容。如果希望它等于空字符串,为什么要将其设置为未定义
或某物
?我不会将其设置为未定义
,我将其设置为something
,用于测试目的,以查看它是将该var追加两次还是通过执行var htmlToAppend代码>,实际上您正在将其设置为未定义<代码>未定义+“foo”
=undefinedfoo
Oh。是的,我将其设置为未定义
。为什么它会成为这个问题的裁判呢?因为。。。它就是这么做的?当您尝试对非字符串的内容使用字符串连接时,它将尝试将某物转换为字符串,或将字符串转换为某物,具体取决于某物是什么。
var htmlToAppend = "";