Javascript 为什么$.isnumeric为false
我正在编写一些JavaScript,我有一个表,需要在其中测试一个字段是否有数据库键(数字)或默认值(“不匹配”)。我正在尝试使用jQuery函数“isNumeric” 代码是:Javascript 为什么$.isnumeric为false,javascript,jquery,Javascript,Jquery,我正在编写一些JavaScript,我有一个表,需要在其中测试一个字段是否有数据库键(数字)或默认值(“不匹配”)。我正在尝试使用jQuery函数“isNumeric” 代码是: var id = $('#myDataTable input:checked').map(function(){ return $(this).closest('tr').find('td:eq(3)').text(); }).get(); console.log(" ID "+id); console.l
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
为什么不是这样?.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();
.get()
返回一个数组,尝试使用id[0]
首先尝试修剪字符串调试时,不要将变量与字符串串联起来!如果您使用了console.log(“ID”,ID)
您将看到[“1”]
而不是“1”
。感谢您的详细解释。