嘿伙计们,我想知道为什么我这个文件中的最后一个脚本无效 - 它假设从JSON中取出值并将其与设定值进行比较。感谢所有人的帮助!
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
var url = "https://graph.facebook.com/tenniswarehouse?callback=?";
$.getJSON(url,function(json){
var html = "<div id=\"tester\">" + json.likes + "</div>";
//A little animation once fetched
$('.facebookfeed').html(html);
});
});
</script>
</head>
<body onload="timeMsg()">
<div class="facebookfeed">
<h2></h2>
</div>
<script type="text/javascript">
var x =document.getElementById("tester").innerHTML;
if (x < 56700) {
document.write("worked")
}
else {
document.write("didn't work")
}
</script>
</body>
</html>
答案 0 :(得分:2)
你需要这个功能,比如:
function myFunc() {
var x =document.getElementById("tester").innerHTML;
if (x < 56700) {
document.write("worked")
}
else {
document.write("didn't work")
}
}
然后这样称呼它:
$.getJSON(url,function(json){
var html = "<div id=\"tester\">" + json.likes + "</div>";
//A little animation once fetched
$('.facebookfeed').html(html);
myFunc();
});
因为您在将测试程序添加到DOM之前执行该代码。
答案 1 :(得分:1)
您的头部功能是在页面加载时执行的。但是,在呈现页面时(页面加载之前)执行正文中的javascript代码,因此在AJAX请求之前执行。
要解决此问题,您应该将脚本从body移动到json处理程序。那样:
$(function() {
var url = "https://graph.facebook.com/tenniswarehouse?callback=?";
$.getJSON(url,function(json){
var html = "<div id=\"tester\">" + json.likes + "</div>";
//A little animation once fetched
$('.facebookfeed').html(html);
var x =document.getElementById("tester").innerHTML;
if (x < 56700) {
document.write("worked")
} else {
document.write("didn't work")
}
});
});