如何正确使用JQuery hasData()?

时间:2014-12-08 03:07:34

标签: jquery arrays ajax

我有一个基本的前端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中显示数据,但仅在验证数据已存在之后。

所以我正在尝试使用jQuery的.hasData()来检查:

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

}
});

但是现在,我只是反复得到虚假警报,即使我已经验证数据存在。我迷路了,因为这是我第一次使用jQuery / AJAX ...任何帮助或建议?

1 个答案:

答案 0 :(得分:2)

hasData对我认为的单个元素进行操作(参见docs),您传递的是查询结果。

因此取代

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

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

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