【问题标题】:jQuery If value is NaNjQuery 如果值为 NaN
【发布时间】:2017-07-18 14:44:54
【问题描述】:

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

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

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

【问题讨论】:

标签: javascript jquery


【解决方案1】:

您必须将值分配回$(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 (及其各自的 1 liner polyfil)不同。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
  • 您的解决方案对我不起作用,然后我使用了 var tal = parseInt($(this).val()) || 0;它奏效了。
【解决方案2】:

如果要将 NaN 替换为 0,只需这样写:

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

【讨论】:

    猜你喜欢
    • 2021-04-29
    • 2012-07-22
    • 2012-04-03
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多