我有一个基本的仅限前端的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()
。