こんにちは、次の値を5秒ごとに表示したいjson配列があります
このコードは、サーバーから json を取得し、json 配列を関数に送信します。
function myFunction() {
$.ajax({
type: "POST",
url: "ws.aspx/GetQueue",
data: "{'eventid':'" + eventID + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
if (msg != null) {
var obj;
if (msg.hasOwnProperty("d"))
obj = jQuery.parseJSON(msg.d);
else
obj = jQuery.parseJSON(msg);
setHtml(obj);
}
setTimeout(function () { myFunction(); }, 5000);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.responseText);
setTimeout(function () { myFunction(); }, 5000);
}
});
}
これは、配列を送信した後の私の関数です:
function setHtml(obj) {
for (var i = 0; i < obj.length; i++)
setTimeout(function () { $('.Summary').html("<H1>" + obj[i].QueueName + "->" + obj[i].name + ' : ' + obj[i].Queue + "</H1><br/>"); }, 5000);
}
しかし、ループ内の値は未定義です。なぜですか? この問題の解決策は何ですか?