我有一个基本的仅限前端的Web应用程序,其中单击了一个按钮,将GET请求发送到Foursquare API,然后AJAX将一些请求的响应数据存储到div中,如下所示:

checkinsCount[i] = data.response.venues[i].stats.checkinsCount;
$("#fs_results").data("checkinsCount", checkinsCount);
d = $("#fs_results").data("checkinsCount");
console.log(d);


然后,我有一个复选框,当单击复选框时,我想在其中将数据显示在div中,但是只有在确认数据已经存在之后才可以在div中显示。

因此,我试图使用jQuery的.hasData()进行检查:

$('#checkbox1').click(function () {
if($.hasData($('#fs_results'))){
  $("#fs_results").toggle(this.checked);
} else{
  alert("false");
  $('#checkbox1').attr('checked', false);

}
});


但是现在,即使我已经验证了数据的存在,我也会反复收到错误警报。我迷路了,因为这是我第一次使用jQuery / AJAX ...有什么帮助或建议吗?

最佳答案

我相信hasData在单个元素上运行(请参见docs),您正在传递查询结果。

因此取代

if($.hasData($('#fs_results'))){



if($.hasData($('#fs_results')[0])){

应该解决问题。另外,应在复选框上使用prop()而不是attr()

10-06 04:34