我正在尝试增加变量value
。当我勾选一个方框时,函数cal
会运行,并附加所检查的每个项目的advert.numbers
。如何增加变量advert.numbers
中的value
。
在下面的代码中,我不断获得NAN
。
如何递增值并使用id="values
<input type="text" class="form-control" id="values" placeholder="values" name="values">
<script type="text/javascript">
var values;
function cal(item) {
var advert = JSON.parse(item.dataset.name);
if(item.checked == true) {
$('.panel').append(
'<div class="container">'
+ '<p class="points" data-points="' + advert.numbers + '">'
+ advert.numbers
+ '</p>'
+ '</div>'
);
values += advert.numbers;
alert(values);
}
}
</script>
答案 0 :(得分:5)
这是因为你永远不会给values
一个初始值,所以它从默认的初始值开始,即undefined
。 undefined
加上任何数字都是NaN
,因为undefined
无法隐式强制转换为数字。
只需从var values = 0;
开始,而不仅仅是var values;
。
我还建议避免将代码放在全球范围内。全局命名空间非常拥挤(事实上,由于var values
s元素的隐式全局变量的恐怖,你的id
正在遮蔽已经存在的全局。考虑将所有代码包装在作用域函数中:
(function() {
// ...your code here...
})();