将循环中未定义的项显示为零

时间:2017-05-23 16:44:16

标签: jquery

我有一个基于循环创建html元素的ajax调用。 我调用的一些数据是空的,将显示为未定义,我试图找到一种方法将其显示为零。

success: function(response) {
    var results = response.results;
    var html = '';

    for (var i = 0; i < results.length; i++){
         html += '<span class="test">' + results[i].code + '</span>'
     }
}
$('#mydiv').html(html);

上面的代码会显示如下。

123
456
undefined
678
undefined

如何抑制未定义的打印像

123
456
0
678
0

4 个答案:

答案 0 :(得分:1)

您可以尝试(results[i].code == null)

success: function(response) {
    var results = response.results;
    var html = '';

    for (var i = 0; i < results.length; i++){
         var ht = (results[i].code == null)? 0 : results[i].code;
         html += '<span class="test">' + ht  + '</span>'
     }
}
$('#mydiv').html(html);

参考:How to determine if variable is 'undefined' or 'null'?

答案 1 :(得分:0)

只要使用if else

 if( results[i].code ===undefined){

    html += '<span class="test">0</span>';

  }else{

    html += '<span class="test">' + results[i].code + '</span>';
  }

答案 2 :(得分:0)

success: function(response) {
    var results = response.results;
    var html = '';

    for (var i = 0; i < results.length; i++){
         html += '<span class="test">' + ((typeof results[i].code != "undefined") ? results[i].code : 0) + '</span>'
     }
}
$('#mydiv').html(html);

答案 3 :(得分:0)

您需要添加一个条件来检查该值是否未定义(也可以检查null值),然后显示&#34; 0&#34;如果值未定义(或为null)。

您可以将代码更新为类似内容,以确保将未定义的值打印为&#34; 0&#34;:

success: function(response) {
    var results = response.results;
    var html = '';

    for (var i = 0; i < results.length; i++){
        var resultCode = results[i].code;
        if (typeof resultCode === "undefined" || resultCode === null){
            resultCode = 0;
        }
        html += '<span class="test">' + resultCode + '</span>'
    }
}
$('#mydiv').html(html);