jquery - 比较两个数字 9<10

标签 jquery

我以前从未遇到过这个错误,每当我的 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/

相关文章:

jquery - 使用 jQuery 制作每个单独行的列表

javascript - 使用 dataTables dom 定位元素

php - 有什么技术可以在不刷新页面的情况下,用更新的内容来更新网页呢?

javascript - jQuery - 一行中有多少个单元格

javascript - 为什么我的 hasClass 的 if/else 条件只触发第一个条件?

javascript - 如何将数据从jquery发送到javascript

javascript - 如何获取文本 block 中的字符坐标?

jQuery:如何通过 src 查找图像

javascript - 滚动时非线性淡入淡出?

php - 使用 PHP 和 jQuery 生成并下载 .csv 文件