4

我得到了这个 Jquery 代码:

$.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 无法定义,所以我的表格中出现“未定义”文本。问题是,我是法国人,我想要不同的文本,而不是这个“未定义”。

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

4

4 回答 4

9

您可以在 concat 中进行快速条件/逻辑或检查:

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

所以现在,如果item.HEADERundefined我们将遇到空字符串。当然,您也可以使用更具表现力的字符串之类的"empty"

于 2012-08-06T13:59:53.470 回答
4
if (typeof variable == "undefined")
{
    // variable is undefined
}
于 2012-08-06T14:00:29.830 回答
1

使用三元运算符...(测试?如果为真,则为:如果为假,则为)

...+( item.HEADER ? item.HEADER : "something french" )+...
于 2012-08-06T14:00:47.570 回答
0

像这样轻松完成:

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

// or 

if (typeof item.HEADER === 'undefined') {
    item.HEADER = 'indéfini';
}
于 2012-08-06T14:00:18.773 回答