jQuery如果值为NaN

69
我在if语句上遇到了些问题。我想把num设置为0,如果它的值为NaN:
$('input').keyup(function() {

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

那就这么做吧。目前你正在将“tal”设置为“0”。请用“num”替换“tal”。 - Felix Kling
这个问题获得了多少浏览量,真是太疯狂了。 - Rails beginner
给所有用户...请查看https://dev59.com/kWsz5IYBdhLWcg3wR1kc,即使用 $.isNumeric()!!! - Paul Zahra
2个回答

149
你必须将值重新赋给$(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);
});

eThis.val() 是一个字符串,0 是一个数字。此外,您正在使用全局 isNaN,这与更好的实践 Number.isNaN(及其相应的一行代码填充)不同。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN - fullstacklife
你的解决方案对我没有起作用,但是我使用了 var tal = parseInt($(this).val()) || 0; 就可以了。 - Kamlesh

54
如果你想将NaN替换为0,只需写入以下内容:
var tal = parseInt($(this).val()) || 0;

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