所以这是我的代码:
var score1 = $(this).attr('data-score1');
var score2 = $(this).attr('data-score2');
if (score1 < score2) {
// do some
}
if (score2 > score1) {
// do something else
}
现在,只要两个变量都是&lt;或两者&gt; 100,但是当这些变量中的任何一个大于100而另一个不是错误的if语句被触发时。这到底怎么回事? 谢谢你的建议!
答案 0 :(得分:7)
使用parseInt()
属性会抛出字符串..所以当你尝试比较它们时......你实际上在比较
"100" > "90"
而不是100 > 90
..将 parseInt()与基数一起使用可以解决您的问题..
var score1 = parseInt( $(this).attr('data-score1') , 10);
var score2 = parseInt( $(this).attr('data-score2') , 10);
if (score1 < score2) {
// do some
}
else if (score2 > score1) {
// do something else
}
正如@naveen建议你也可以这样做
var score1 = +$(this).attr('data-score1');
var score2 = +$(this).attr('data-score2');
答案 1 :(得分:3)