我必须遗漏一些东西..不确定为什么我的JavaScript失败或无法正常工作
var discount = 10;
var newTemp;
if (discount != null) {
if (discount.indexOf("%") > -1) {
newTemp = discount.substring(0, 2) + '%';
} else {
newTemp = discount;
}
} //end of outer if
以上脚本在折扣=“10.0%”时有效 但是当折扣= 10时失败
可能不是最好的方法,但我想要做的就是折扣价值包含%符号然后用新值设置newTemp变量。另外,请保持原样。
任何想法,为什么当折扣价值= 10时控制失败
答案 0 :(得分:2)
因为“10%”是一个字符串,因此它有indexOf
方法,10可能是整数或数字。
尝试discount.toString().indexOf('%')
答案 1 :(得分:0)
这是因为你没有追加'%'在其他分支。
var newTemp;
if (discount != null) {
if (discount.indexOf("%") > -1) {
newTemp = discount.substring(0, 2);
} else {
newTemp = discount;
}
} //end of outer if
newTemp += '%';
同样如Hugo所说,数字10没有indexOf
方法,这是一种字符串方法。