我有一个基于循环创建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
答案 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);
答案 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);