为什么会这样
var marketName = (controller.state.operation.code === 'copy')
? controller.state.market.targetName
: controller.state.market.name;
$('dd.preview-step1').html(
'Market = <i>'
+ marketName
+ '</i><br />Source = <i>'
+ controller.state.source.name
+ '</i><br />Target = <i>'
+ controller.state.target.name
+'</i>'
);
输出:
市场= blabla
来源= blabla
目标= blabla
虽然这个
$('dd.preview-step1').html(
'Market = <i>'
+ (controller.state.operation.code === 'copy')
? controller.state.market.targetName
: controller.state.market.name
+ '</i><br />Source = <i>'
+ controller.state.source.name
+ '</i><br />Target = <i>'
+ controller.state.target.name
+ '</i>'
);
只输出:
市场= blabla
我不明白为什么不打印内联三元运算符后的其余字符串。
感谢您的帮助。
答案 0 :(得分:3)
因为它不知道+
不属于它。在三元部分周围使用(),以便操作顺序达到你想要的效果。
$('dd.preview-step1').html('Market = <i>'+
((controller.state.operation.code === 'copy') ? controller.state.market.targetName : controller.state.market.name)
+'</i><br />Source = <i>'+ controller.state.source.name +'</i><br />Target = <i>'+ controller.state.target.name +'</i>');
请参阅我在上面第二行的开头和结尾添加的额外(
和)
。