为什么$ .isnumeric为false

use*_*629 3 javascript jquery

我正在写一些JavaScript,我有一个表,我需要测试数据库键(数字)或默认值("NO MATCH")的字段.我正在尝试使用jQuery函数'isNumeric'

代码是:

var id = $('#myDataTable input:checked').map(function(){
     return $(this).closest('tr').find('td:eq(3)').text();
}).get();

console.log(" ID "+id);
console.log(" ID2 "+$.isNumeric(id));
Run Code Online (Sandbox Code Playgroud)

在我的控制台中,我看到:

ID 1
ID2 false
Run Code Online (Sandbox Code Playgroud)

为什么这不是真的?

Ori*_*iol 7

.get()返回["1"]非数字的数组.

当您将其记录到控制台时,您无法看到它,因为您将其与字符串连接,并且["1"].toString()是"1".

相反,当你调试它时,最好避免将变量强制转换为其他类型.console.log("ID", id)会更好.

要获取字符串而不是数组,可以使用.get(0)或[0].

但是,如果您只对第一个字符串感兴趣,则使用时没有意义map:

var id = $('#myDataTable input:checked').eq(0)
         .closest('tr').find('td').eq(3)
         .text();
Run Code Online (Sandbox Code Playgroud)