为什么 $.isnumeric 是 false?

3
我正在编写一些 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));

在我的控制台中,我看到:
ID 1
ID2 false

为什么这不是真的?

5
.get() 返回一个数组,尝试使用 id[0] - Satpal
1
尝试先修剪字符串。 - Alex
2
当你调试时,永远不要将变量与字符串连接起来!如果你使用 console.log("ID", id);,你会看到 ["1"] 而不是 "1" - Oriol
1个回答

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();

感谢您的详细解释。 - user1592380

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接