html+javascript字符串转数字,js输出数据类型,Number()数字类型转换及字符串大小比较...

本文介绍了一个关于分页功能的常见错误:当用户输入的页数大于总页数时,系统未能正确处理。通过分析问题根源——字符串比较而非数值比较,给出了正确的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天同事找我求助,在写一个分页功能时遇到了问题,输入页数跳转页面时,输入内容大于总页数时也会跳转。

他将总页数与 input 输入的数字进行对比,比如总页数时 6 ,输入 7 是正常提示“超出最大页数”,输入 50 却会跳转成功。

HTML:

第5页

共6页

 跳转

jQuery:$("#skip").click(function () {

var pages = $("#page").html();

var inpPage = $("#inp-page").val();

if(inpPage > pages){

alert("超出最大页数");

}else{

alert("跳转成功");

}

})

输入数字 7 ,会弹出“超出最大页数”,输入 50 却会提示“跳转成功”。

原因:

原来获取到的是字符串 string ,并不是数字 Number ,所以比较大小是按照字符串的方式进行的。

字符串大小比较的规则:

比较的时候,从字符串左边开始,依次比较每个字符,直接出现差异、或者其中一个串结束为止。

比如 ABC 与 ACDE 比较,第一个字符相同,继续比较第二个字符,由于第二个字符是后面一个串大,所以不再继续比较,结果就是后面个串大。

再如 ABC 与 ABC123 比较,比较三个字符后第一个串结束,所以就是后面一个串大。

所以,长度不能直接决定大小,字符串的大小是由左边开始最前面的字符决定的。

JS 输出数据类型:

语法:typeof object,打印数据类型代码如下:console.log(pages); // string

所以我们刚刚比较的是字符串,上面的问题就好理解了,应该把 字符串 转换为数字类型,在进行比较。

将数据类型转换为字符串:

语法:Number(object) ,代码如下:Number(pages);

代码改为如下,就可以正常比较了:if( Number(inpPage) > Number(pages)){

alert("超出最大页数");

}else{

alert("跳转成功");

}

JavaScript 类型转换:

String() 将数字转换为字符串。

Date() 将日期转换为字符串。

Number() 将字符串转换为数字。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值