typeof命令不起作用

时间:2016-06-30 14:41:45

标签: javascript jquery typeof

您好我试图用以下方法检查DOM的值:

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

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

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

2 个答案:

答案 0 :(得分:1)

这一行

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。

答案 1 :(得分:0)

.val()返回DOMString(字符串)

因此typeof iattn始终为string

如果您希望typeof number转换为int

使用parseInt(iattn)parseFloat(iattn)