我在div中显示json数据是否有效。
var details= response.data.filters;
$.each(details,function(i,value){
$('.subSection').append('<section><label>Speed</label><label>'+value.speed+'</label></section>');
});
我将0
作为value.speed
时尝试显示null
。所以我尝试使用这样的三元运算符
$('.subSection').append('<section><label>Speed</label><label>'+(value.speed==null)?'0':value.speed+'</label></section>');
但是它会像这样连续返回零。0000
。不是一个合适的结构元素。
我认为我在三元运算符中做错了。如果错了,任何人都可以纠正我吗?
答案 0 :(得分:2)
问题在于您的操作顺序,您需要将整个三元包装在parens中。您的陈述有效地评估为:
$(".subSection").append(
("<section><label>Speed</label><label>" + (value.speed == null))
? "0"
: (value.speed + "</label></section>")
);
你想要的是:
$(".subSection").append(
"<section><label>Speed</label><label>" +
(value.speed == null ? "0" : value.speed) +
"</label></section>"
);
此外,如果(value.speed || '0')
是任何有价值的值,您可以用'0'
取代三元使用value.speed
将来你最好不要提取语句而不是内联它们来完全阻止这个问题:
const speed = (value.speed == null) ? "0" : value.speed;
$(".subSection").append(
"<section><label>Speed</label><label>" +
speed +
"</label></section>"
);
答案 1 :(得分:2)
请尝试用括号括起来
$('.subSection').append('<section><label>Speed</label><label>'+((value.speed==null)?'0':value.speed)+'</label></section>');
希望这有帮助!