使用js / jQuery检查对象(不是元素)是否真的存在

时间:2012-09-08 08:28:12

标签: javascript jquery

我得到了这段代码,数据是在ajax环境中的成功回调中返回的值:

$('#cpt_rspp_value').text(data.Payload.Clerks.rspp.full_name)
$('#cpt_ddl_value').text(data.Payload.Clerks.ddl.full_name)
$('#cpt_rls_value').text(data.Payload.Clerks.rls.full_name)
$('#cpt_mc_value').text(data.Payload.Cler.mc.full_name)
$('#cpt_se_value').text(data.Payload.Clerks.se.full_name)

如果,rspp确实存在于DB中,则对象data.Payload.Clerks.rspp.full_name将存在,因此我可以将其放在正确的位置(即:#cpt_rspp_value)。 但是,唉,如果该对象不存在,js解释器将停止,因此,即使存在下一个对象data.Payload.Clerks.ddl.full_namedata.Payload.Clerks.rls.full_name等,该行也永远不会被处理。

我应该“if”任何一行,但如何? if(data.Payload.Clerks.rspp.full_name)if(data.Payload.Clerks.rspp.full_name != null)无法解决此问题。 我该怎么办?

2 个答案:

答案 0 :(得分:6)

您可以使用typeof javascript运算符来检查对象是否已定义,

if(typeof data.Payload.Clerks.rspp.full_name != 'undefined')

if(typeof data.Payload.Clerks.rspp != 'undefined')

答案 1 :(得分:3)

检查它是否严格为object

if(typeof myobject === 'object')

在您的情况下,请检查string类型

if( typeof data.Payload.Clerks.rspp.full_name === 'string')

个人观点 - 你可以使用if(rspp.full_name),因为这是对更大的事物计划的一个微不足道的检查。 (从问题中看起来像):)