JavaScript变量为空,而没有先前的警报消息 [英] JavaScript variable empty without previous alert messge
本文介绍了JavaScript变量为空,而没有先前的警报消息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用以下函数从JSON文件创建链接列表,并将其放入span元素(jquery已初始化)
I'm using the following function to create a list of links from a JSON-File and put them into a span element (jquery has been initialized)
$(document).ready(function() {
function createjson(category) {
var content = "";
i = 0;
$.getJSON(category + ".txt", function(data){
while(data[i] != null) {
content = content + '<li class="liste"><a target="_blank" class="liste" href="' + data[i].url + '">' + data[i].name + '</a></li>';
i++;
}
});
document.getElementById("list_" + category).innerHTML = content;
}
createjson("cat1");
});
但是,如果我这样使用它,span元素将保持为空.只有当我更换
However, if I use it like this, the span element remains empty. It is only when I replace
document.getElementById("list_" + category).innerHTML = content;
与
alert("test");
document.getElementById("list_" + category).innerHTML = content;
我得到了期望的输出.如何在不事先打印警报消息的情况下获得它?
that I get the desired output. How can I get it without printing out an alert message beforehand?
推荐答案
将html追加置于回调中,并在回调开始时重置i.
Put the html append in callback, also reset the i when call back starts.
$(document).ready(function() {
function createjson(category) {
$.getJSON(category + ".txt", function(data)
{
var content = "";
for(i=0; i<data.length; i++)
{
content = content + '<li class="liste"><a target="_blank" class="liste" href="' + data[i].url + '">' + data[i].name + '</a></li>';
}
document.getElementById("list_" + category).innerHTML = content;
});
}
createjson("cat1");
});
这篇关于JavaScript变量为空,而没有先前的警报消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文