Javascript 如果值为NaN,则jQuery

Javascript 如果值为NaN,则jQuery,javascript,jquery,Javascript,Jquery,我在if语句中遇到了一些问题。我想将NaN的num设置为0: $('input').keyup(function() { var tal = $(this).val(); var num = $(this).data('boks'); if(isNaN(tal)) { var tal = 0; } }); 您必须将该值重新分配给$(this): $('input').keyup(function() { var tal = $(this).val(); var num = $(this).

我在if语句中遇到了一些问题。我想将NaN的num设置为0:

$('input').keyup(function() {

var tal = $(this).val();
var num = $(this).data('boks');
if(isNaN(tal)) {
var tal = 0;
}
});

您必须将该值重新分配给
$(this)

$('input').keyup(function() {

var tal = $(this).val();
var num = $(this).data('boks');
if(isNaN(tal)) {
var tal = 0;
}
$(this).data('boks', tal);
});
写得很好:

$('input').keyup(function() {
    var eThis = $(this);
    var eVal = (isNaN(eThis.val())) ? 0 : eThis.val();
    eThis.data('boks', eVal);
});

如果要将NaN替换为0,只需编写以下内容:

var tal = parseInt($(this).val()) || 0;

那就做吧。当前您正在将
tal
设置为
0
。用
num
替换
tal
。疯狂这个问题得到了多少视图..对所有用户。。。请参见,即使用$.isNumeric()!!!val()是一个字符串,0是一个数字。此外,您使用的是全局isNaN,它与better practice Number.isNaN(及其各自的1线性polyfil)不同。您的解决方案对我不起作用,然后我使用var tal=parseInt($(this).val())| | 0;成功了。