0

我已经在这个错误上工作了大约 2 个小时,这让我发疯。

我想要做的是从一个元素(有效)中获取一个数字并更改数字并将其替换为以前的数字。但是该数字被替换为字符串,并且之前的数字仍然存在。

HTML:

<span class="likesAmount">1</span>

查询:

  //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 sence它两次进入喜欢导致不正确的结果..这段代码与它无关。但是谢谢你帮助我!

4

4 回答 4

5

假设找到元素有效,您的代码看起来应该有效。将其拆分可能有助于诊断问题:

var element = $(this).parent().parent().find('.likesAmount');
var likes = parseInt(element.text(), 10);
element.text( Math.max(likes - 1, 0) );
于 2013-07-05T14:06:47.853 回答
0

对不起,伙计们,我犯了一个愚蠢的错误。代码确实是正确的,但是我忘记了一个简单的 if,它两次进入 + 1 .. 那是我的错误,感谢您的回答!

于 2013-07-05T14:35:45.820 回答
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为字符串。

于 2013-07-05T14:23:36.487 回答
0

尝试

//get number
Likes = parseInt($('.likesAmount').text());
//replace number
$('.likesAmount').text(Likes);
于 2013-07-05T14:07:35.523 回答