我正在尝试使用jquery从json数组中选择一行。这就是我所拥有的:
$(document).ready(function() {
$.getJSON( "js/collectie.json", function(data) {
jsoncollectie = data;
})
$( "#collectie li" ).click(function(){
var thumb_id = $(this).data("id");
for(var i = 0; i < jsoncollectie.stoelen.length; i++){
if(jsoncollectie.stoelen[i].ref == thumb_id){
$("#detailimage").attr('src', jsoncollectie.stoelen[i].image);
$("#detailimage").attr('title', jsoncollectie.stoelen[i].title);
$("#title").html('<h4> '+jsoncollectie.stoelen[i].naam+' </h4>');
$("#secondaryimage").attr('src', jsoncollectie.stoelen[i].secondaryimage);
$("#secondaryimage").attr('title', jsoncollectie.stoelen[i].secondarytitle);
$("#description").html('<p> '+jsoncollectie.stoelen[i].description+' </p>');
}
}
});
});
现在,当我单击列表项(#collectie li)时,控制台输出“ ReferenceError:未定义jsoncollectie”。我不知道为什么要这么做,而且我很确定它在两周前就可以了。对javascript / jquery不太了解,但是我正在慢慢学习。
使用延迟方法检查您的getJSON请求是否已接收并返回
// Syntax that will shed light to your issue :
$.getJSON
(
"js/collectie.json",
function (oJSON) { /*success*/ }
)
.done(function() { /* succeeded */ })
.fail(function() { /* failed */ })
.always(function() { /* ended */ });
由于评论和未定义仅在成功处理程序中声明的变量的事实,我得出了这个结论。由于未定义包含JSON的变量,因此绝不能调用成功处理程序。可能是您尝试获取的JSON路径不正确。
实现方法的文档:
更新
重要的细节是知道响应为304,并且结果不确定。jQuery已经在这里解决了这个问题
鉴于ifModified标头尚未设置为false,这实际上是正确的。
要解决此问题,请使用ajaxSetup()修改标头。
注意:jQuery不建议使用此方法,但在这种情况下可以使用。
// place this is document ready handler before making any calls.
$.ajaxSetup({ ifModified : false });
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句