我正在尝试将元素(promo-footer)的文本值设置为变量(footerVar)的内容,如果它不是空字符串'。
$('.promo-footer').text(footerVar == '' ? 'no' : footerVar);
可行,并且仅显示页脚文本(如果存在),并且变量为空字符串”,则显示“否” ...
我的问题是-为什么这样做?我认为如果等式求和后,问号之后的第一件事就会发生true
。
x = (1 < 2) ? true : false;
它正在起作用:https : //jsfiddle.net/xfzgaLq6/
它按应有的方式工作。
var promotionObj = {};
promotionObj.footer_text = "foot test";
// This works, says "foot test". Why??
$('.promo-footer').text(promotionObj.footer_text == '' ? 'no' : promotionObj.footer_text);
// This says "no":
$('.promo-footer').text(promotionObj.footer_text == '' ? promotionObj.footer_text : 'no');
现在考虑上面的代码,它来自您发布的小提琴。第一个说“ foo测试”,因为promotionObj.footer_text不是空字符串。代码的第二部分说“ no”,因为您交换了表达式的排列方式,其中变量的值:promotionObj.footer_text仅在为空且在这种情况下不为空时才用作页脚文本,因此将以“ no”代替。
考虑一下。
var arg = 5;
var result = arg > 10 ? arg : 0; // result contains 0
var result = arg > 10 ? 0 : arg // result contains 5 which is the value of arg
我希望解释清楚。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句