我创建了一个按钮来添加一个吻计数器,但是我得到了一个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/希望你们能帮我解决这个问题,谢谢。
您正在尝试解析一个对象,因此NaN和NaN + 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();
});