2012-08-06 59 views
4

我得到这个jQuery代码:jQuery的Ajax和JSON:如何检查是否未定义

$.ajax({ 
    url: "?module=gestionApplication&action=getTests&scenario="+encodeURI(scenario)+"&application="+$application, 
    dataType:'json', 
    success: function(data) { 
     $.each(data, function(i, item) { 
      $("#tests tbody").append($tr+"<td title='"+item.DESCRIPTION+"'>"+item.ID+"</td>" + 
      "<td>"+ 
       "Header : "+item.HEADER + '<br/>' + 
       "Méthode : "+item.METHODE + '<br/>' + 
       "PostBody : "+item.POSTBODY + '<br/>' + 
       "URL : "+item.URL + '<br/>' + 
       "ParseReponse : "+item.PARSEREPONSE + '<br/>' + 
      "</td>" + 

,所以我就从我的服务器的JSON响应,但并不是所有领域都满了。有时item.HEADER或item.METHODE不能被定义,所以我在我的表中得到“未定义”文本。问题是,我是法国人,我想要不同的文字,而不是这个'未定义'。

那么如何测试变量是否被定义?或者更好的是,如果变量未定义,是否可以将这个“未定义”的文本更改为不同的文本?

回答

9

你可以做一个快速的有条件/逻辑或你的CONCAT内检查:

"Header : " + (item.HEADER || '') + '<br/>' + 

所以现在,如果item.HEADERundefined我们会遇到一个空字符串代替。当然,你也可以使用更具表现力的字符串,如"empty"或whatnot。

+0

完美,THX了很多 – timmalos 2012-08-06 14:28:57

0

容易,像这样做:

if (item.HEADER === undefined) { 
    item.HEADER = 'indéfini'; 
} 

// or 

if (typeof item.HEADER === 'undefined') { 
    item.HEADER = 'indéfini'; 
} 
4
if (typeof variable == "undefined") 
{ 
    // variable is undefined 
} 
1

使用三元操作符...(测试做,如果真:怎么做,如果假)

...+(item.HEADER ? item.HEADER : "something french")+...