在Javascript中,每次求和都有一个NaN值

I have a NaN value every time I sum a number in Javascript

本文关键字:有一个 NaN 求和 Javascript      更新时间:2023-09-26

我创建了一个按钮来添加一个吻计数器,但是我得到了一个NaN值,我不知道如何解决它。你们能帮帮我吗?

我在LocalStorage中保存值,我用jQuery获得DOM的值。下面是我保存数据的方法:

<h1>Due: <span id="counter">0</span></h1>
<a id="btn" href="javascript:void(0);">+</a>
var btn = $('#btn').click(function() {
        var valor = $('#counter');        
        valor.text(parseInt(valor) + 1);
        saveData();
    });
function saveData() {
    if (supportsLocalStorage()) {
        var counter = $('#counter').text();
        localStorage.setItem('kisses', counter);
    }
}

我得到一个NaN值每次我点击加号按钮。

我有一把小提琴。

https://jsfiddle.net/usdjsr40/

希望你们能帮我解决这个问题,谢谢。

您正在尝试解析一个对象,因此NaNNaN + 1给出NaN。所以试试这个:

var btn = $('#btn').click(function() {
        var valor = $('#counter');        
        valor.text(parseInt(valor.html().trim()) + 1);
        saveData();
    });
function saveData() {
    if (supportsLocalStorage()) {
        var counter = $('#counter').text();
        localStorage.setItem('kisses', counter);
    }
}

你正在传递一个html对象给parseInt,因此它正在发送NaN。

 var valor = $('#counter'); 

这里valor是html元素,而不是字符串。

试试这个:-

 var valor = $('#counter').text().trim(); 

NaN表示非数字。你没有正确加载$('#counter')的数据

$('#counter')是简单的jQuery元素对象。您正在尝试向JavaScript对象添加数字1,而不是数字。

为了获得元素中的值,您需要像这样调用它:
$('#counter').html()

然后你可以把parseInt括起来:

parseInt( $('#counter').html() )
所以你的前几行代码应该看起来像:
<h1>Due: <span id="counter">0</span></h1>
<a id="btn" href="javascript:void(0);">+</a>
var btn = $('#btn').click(function() {
        var valor = $('#counter').html();     
        valor.text(parseInt(valor) + 1);
        saveData();
    });
相关文章: