我有一个AJAX调用,从数据库中获取时间(以分钟为单位)。但是,如果从数据库中获取的值是null
,我想替换“null”以显示“0分钟”。现在,如果时间为空,它不会显示任何内容。
$SCRIPT_ROOT = {{ request.script_root|tojson|safe }};
$(function() {
$.getJSON($SCRIPT_ROOT + '/_ajax',
function(data) {
$("#timePeriod").text(data.timePeriod);
if (data.timePeriod == null) {
data.timePeriod = '0';
}
});
});
然后使用以下span标记在HTML中显示:
Average time: <span id="timePeriod"></span> mins
我的AJAX代码中的if
语句无法正常工作。它不会显示任何内容(甚至不是null
,尽管这是返回的内容)。如何正确替换此值,以便在结果为空时显示“0”?
答案 0 :(得分:3)
如果我理解正确的问题(尽管我不知道您使用data.wait
的原因),它应该像以下一样简单:
data.timePeriod = !isNaN(+data.timePeriod) ? +data.timePeriod : '0';
$("#timePeriod").text(data.timePeriod);
说明:
(逻辑上)您要检查您收到的数据是否有效。它可能是null(肯定),但它也可能包含任何其他奇怪的值。因此,为了100%确定实际可以解析的值,我们首先尝试将其转换为数字(使用一元运算符+
),然后我们检查它是否不是NaN:!isNan
如果结果实际上是一个数字,评估将返回true。
如果是,则将值分配给data
对象,否则分配'0'
。
第二行只是将值放在span
元素中。
答案 1 :(得分:2)
document.getElementById('timePeriod').innerText = +data.timePeriod
使用+
转换为数字,+null
已为0。
document.getElementById('timePeriod').innerText = +null
&#13;
Average time: <span id="timePeriod"></span> mins
&#13;