如何正确使用JQuery hasData()?

blu*_*tic 5 arrays ajax jquery

我有一个基本的仅前端 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);
Run Code Online (Sandbox Code Playgroud)

然后我有一个复选框,当单击该复选框时,我想在 div 中显示数据,但只有在验证数据已经存在之后。

所以我尝试使用 jQuery 的 .hasData() 来检查这一点:

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

}
});
Run Code Online (Sandbox Code Playgroud)

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

小智 5

hasData 对单个元素进行操作,我相信(请参阅文档),您正在传递查询结果。

因此替换

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

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

应该可以解决问题。另外,您应该在复选框上使用prop()and 。attr()