嗨,我正在尝试使用以下方法检查DOM的值:

if ($('#ATTN').val() == '') {
    $('#ATTN').val(0);
} else {
    iattn=$('#ATTN').val();
    alert(iattn);

    if(typeof iattn == 'number'){
        alert('oh');
    }
}


但它什么也没返回。也没有显示错误。

最佳答案

这条线

iattn=$('#ATTN').val();


返回一个字符串。

如果要查看是否可以将其转换为整数,则需要这样:

iattn=parseInt($('#ATTN').val());
if (iattn) {
    alert("oh");
}


如果要进行更通用的数字测试,请使用parseFloat而不是parseInt

如果要检查解析结果是否与输入匹配,请使用以下内容:

iattn=$('#ATTN').val();
if (iattn == parseInt(iattn)) {
    alert("oh");
}


一个简单的检查实际上不会将任何内容转换为数字,并且将允许所有数字格式(例如2.3、0x3,+ 23)是这样的:

if (!isNaN(iattn)) {
    alert("oh");
}


通过评论归功于@ p.s.w.g。

关于javascript - typeof命令不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38126449/

10-12 00:31