我一直在研究这个错误2个小时,这让我发疯了。
我要做的是从元素中获取一个数字(有效)并更改数字并将其替换为前一个数字。但是这个数字被一个字符串替换,之前的数字仍然存在。
HTML:
<span class="likesAmount">1</span>
JQuery的:
//get number
Likes = parseInt($(this).parent().parent().find('.likesAmount').text());
//replace number
$(this).parent().parent().find('.likesAmount').text(Likes = (Likes - 1 == -1 ? Likes = 0 : Likes - 1));
我尝试了诸如html,数据之类的东西,将其解析为带有文本等的int ..
提前致谢!
编辑:对不起,伙计们,我忘了使用我的commen,因为它进入了两次,导致不正确的结果..这段代码与它无关。但是感谢帮助我!
答案 0 :(得分:5)
假设找到元素有效,您的代码看起来应该可以工作。将其拆分可能有助于诊断问题:
var element = $(this).parent().parent().find('.likesAmount');
var likes = parseInt(element.text(), 10);
element.text( Math.max(likes - 1, 0) );
答案 1 :(得分:0)
尝试
//get number
Likes = parseInt($('.likesAmount').text());
//replace number
$('.likesAmount').text(Likes);
答案 2 :(得分:0)
根据您提供的信息,以下是我提出的解决方案:
//get number
var Likes = parseInt($(this).parent().parent().find('.likesAmount').text());
if((Likes - 1) === -1) {
Likes = 0;
}
else {
Likes = 1;
}
//replace number
$(this).parent().parent().find('.likesAmount').text(String(Likes));
我从文本分配中取出了if / else逻辑。然后我在插入时将Likes
转换为String。
答案 3 :(得分:0)
对不起伙计们,我犯了一个愚蠢的错误。代码确实是正确的,但我忘了一个简单的,如果它进入+ 1两次..这是我的错误,谢谢你的答案!