递增和递减Javascript不工作

递增和递减Javascript不工作,javascript,function,Javascript,Function,我在like按钮中创建了一个JavaScript函数来增加和减少一个数字,下面是函数 var val = 0; var negative = false; $('.i-t').click(function(){ val = val + ((negative) ? -1 : 1); negative = (negative) ? false : true; $("#myval").text(val); }); 此函数在第一次单击时非常有效,但在第二次单击时不会删除该值,该函数是否有问题?这是

我在like按钮中创建了一个JavaScript函数来增加和减少一个数字,下面是函数

var val = 0; 
var negative = false;
$('.i-t').click(function(){
val = val + ((negative) ? -1 : 1); 
negative = (negative) ? false : true;
$("#myval").text(val);
});
此函数在第一次单击时非常有效,但在第二次单击时不会删除该值,该函数是否有问题?这是按钮

 <button id="myvals" class="myvals">
 <i class="myvals" id="i-t"></i> 
 <span class="myvals" id="voteScore">123</span></button>

123
如果喜欢,我想把123改成124,如果不喜欢,我想把122改成122,但它不起作用,很抱歉,我不得不从一开始就更好地准备这个问题

var val = 0;
var negative = false;
$('.i-t').click(function() {
    val = parseInt($("#voteScore").val()) + ((negative) ? -1 : 1);
    negative = (negative) ? false : true;
    $("#myval").text(val);
});

您需要两个按钮,一个用于向上,一个用于向下,或者您可以使用一个按钮和一个复选框用于向上或向下,但我认为两个按钮更简单

当从DOM元素中读取值时,它们通常是字符串,因此如果需要数字,尤其是加法,在执行算术之前不要忘记将值转换为数字

所以按钮和代码可以是:

功能投票(n){
//获取要更新的元素
var el=document.getElementById('投票');
//将文本内容转换为数字,然后添加值
el.textContent=编号(el.textContent)+n;
}
投票数:123
赞成票

向下投票
根据您的评论和更新,您要做的是根据您是否已单击增加/减少投票计数

在这种情况下,如果需要,可以使用类来支持多投票按钮,而不是使用变量来存储状态

$('button.vote')。单击(函数(){
var$btn=$(this.toggleClass('voated');
$(this).find(“span.score”).text(函数(i,val){
return+val+($btn.hasClass('voated')?1:-1);
});
});


此处123
Move
var val=0;var负值=假在处理程序之外?您的代码将在第一次单击时使值
1
,然后在第二次单击时使值
0
,然后在每次单击时在1和0之间交替。。。这就是你想要的吗expect@ArunPJohny我需要的是删除一个值,然后从span类中加上或减去它。。。不知道你是什么意思。。。你的意思是跨度已经有了一个值,你想从中加上或减去这个值吗?我犯了一个错误,代码就是这样的,它无论如何都不起作用,有什么想法吗?我用(文档)试过了。准备好了,它不工作了。代码只对答案不喜欢。您应该解释OP的问题以及代码修复它的原因。