我有一个基本的前端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 ...任何帮助或建议?
答案 0 :(得分:2)
hasData对我认为的单个元素进行操作(参见docs),您传递的是查询结果。
因此取代
if($.hasData($('#fs_results'))){
带
if($.hasData($('#fs_results')[0])){
应该解决问题。另外,您应该在复选框上使用prop()
而不是attr()
。