我以前从未遇到过这个错误,每当我的 jquery 脚本将数字 9 和 10 或 99 和 100 或 999 和 1000 与 9<10 或 99<100 或 999<1000 进行比较时,我都会得到错误的结果,我得到假而不是真。 我该如何修复这个 jquery 错误? 谢谢。
Jquery:
interval = setInterval(function(){
$.post('help/retrivetable.php', { tableimpulse : sessid } ,
function(watchaget) {
if (countcom < watchaget)
{
countcom = watchaget;
$.post('help/retrivetable.php', { newtableimpulse : sessid } ,
function(getit) {
$("#chat").append("<p id="+countmsg+">"+getit+"</p>");
var scrolldown = $('#chat')[0].scrollHeight;
$('#chat').animate({scrollTop:scrolldown}, 200);
});
}
});
}, 50);
当 countcom = 9 且 watchaget = 10 时,应该输入 if ,但我将其视为相等,不会进入其中。
最佳答案
jQuery 是 JavaScript。如果它是一个错误,那么它不是 jQuery-Bug,而是 Javascript-Bug。 (编辑:这句话有讨论。请阅读评论)
尝试这个解决方案:
变量被定义为字符串:
var a = "9";
var b = "10";
此比较将重现您的结果:
if (a < b) ...
当您使用运算符 <
比较两个字符串时你得到true
如果第一个操作数按词法排序在第二个操作数之前。您会得到这个结果,因为按照词法顺序,以“1”开头的字符串将排在以“9”开头的字符串之前,无论其长度如何。
试试这个:
if (a-b < 0) ...
术语a-b
强制 javascript 处理数值计算。字符串将被转换为数字。
关于jquery - 比较两个数字 9<10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12122973/