如何使用jquery检查getJSON后生成的json中是否存在键/值?
function myPush(){
$.getJSON("client.php?action=listen",function(d){
d.chat_msg = d.chat_msg.replace(/\\\"/g, "\"");
$('#display').prepend(d.chat_msg+'<br />');
if(d.failed != 'true'){ myPush(); }
});
}
基本上我需要一种方法来查看d.failed是否存在,如果它='true'则不要继续循环推送。
答案 0 :(得分:11)
你不需要jQuery,只需JavaScript。您可以通过以下几种方式实现:
typeof d.failed
- 返回类型('undefined','Number'等)d.hasOwnProperty('failed')
- 以防它继承'failed' in d
- 检查是否已设置(即使未定义)您还可以检查d.failed:if (d.failed)
,但如果d.failed未定义,null,false或零,则返回false。为了简单起见,为什么不if (d.failed === 'true')
?为什么检查它是否存在?如果是真的,只需返回或设置某种布尔值。
参考:
http://www.nczonline.net/blog/2010/07/27/determining-if-an-object-property-exists/
答案 1 :(得分:1)
昨天发现了这个。 CSS喜欢JSON的选择器
答案 2 :(得分:0)
您可以使用javascript惯用法来表示if语句:
if (d.failed) {
// code in here will execute if not undefined or null
}
这很简单。在你的情况下应该是:
if (d.failed && d.failed != 'true') {
myPush();
}
具有讽刺意味的是,这可以读出“如果d.failed存在并且设置为'true'”,正如OP在问题中写的那样。