我有两个单独的实例,我在页面的标题中显示来自JavaScript的数据:
HTML:
<h2 id='Fetch_Header' style="color:white; font-family: arial;">
The last time you fetched your games was:<span class="last_fetch" style="font-weight: bold;"></span>
</h2>
jQuery的:
$.get('php/FetchGames/LastFetch.php', function (data) {
if (data == "Never") {
var lastdate = data;
$('.last_fetch').html(" " + lastdate);
}
更多jQuery:
$.get('php/FetchGames/GetMatchCount.php', function (data) {
MatchCountJson = data;
MatchCountJson_Parsed = JSON.parse(MatchCountJson);
MatchCount = MatchCountJson_Parsed.Int;
//the above JSON is {"Int":72}
});
$('#Fetch_Header').html('Time to apply your MMR, follow the instructions below. Matches left to apply: ' + MatchCount);
然而只有前者工作(最后一个)。
第一次输出:
日期(按预期)
第二次输出:
"Time to apply your MMR, follow the instructions below. Matches left to apply: undefined"
两个变量都不是null/undefined
,因为如果我使用Console.log
,则lastdate
是日期,Matchcount
是整数(例如32) )。
答案 0 :(得分:6)
Matchcount
在您尝试使用它时不在您的代码范围内。
.get()
是一个异步调用,这意味着在执行下一条指令时不能保证完整。如果您想使用基于data
的任何内容,则需要在get()
调用的回调函数范围内进行。
$.get('php/FetchGames/GetMatchCount.php', function(data){
MatchCountJson = data;
MatchCountJson_Parsed = JSON.parse(MatchCountJson);
MatchCount = MatchCountJson_Parsed.Int;
// Call must be inside of "get()" callback
$('#Fetch_Header').html('Time to apply your MMR, follow the instructions below. Matches left to apply: '+MatchCount);
});
答案 1 :(得分:1)
您只能在get方法的结果中使用MatchCount变量。 试试这个
$.get('php/FetchGames/GetMatchCount.php', function(data){
MatchCountJson = data;
MatchCountJson_Parsed = JSON.parse(MatchCountJson);
MatchCount = MatchCountJson_Parsed.Int;
//the above JSON is {"Int":72}
$('#Fetch_Header').html('Time to apply your MMR, follow the instructions below. Matches left to apply: '+MatchCount);
});
答案 2 :(得分:0)
问题是从服务器传回的数据范围,因此您的第二个html插入无法访问MatchCount。将您的代码更改为:
$.get('php/FetchGames/GetMatchCount.php', function(data){
MatchCountJson = data;
MatchCountJson_Parsed = JSON.parse(MatchCountJson);
MatchCount = MatchCountJson_Parsed.Int;
//the above JSON is {"Int":72}
$('#Fetch_Header').html('Time to apply your MMR, follow the instructions below. Matches left to apply: '+MatchCount);
});