2017-07-24 68 views
0

我试图增加一个事件发生时的数字。例如。按钮点击。在第一个事件代码工作正常,但在后面的事件数字'加倍',我不知道为什么。增加一个div内的数字

EG。 HTML:

<div> 
    <span class="userpointshead"> 130 </span> 
    <button class="jquery-tester">Button</button> 
    </div> 

JQuery的:

$('.jquery-tester').click(function() { 
    var points = parseInt($('.userpointshead').text()); 
    $('.userpointshead').text(points+5); 
}); 

在第一个点击按钮的.userpointshead内容将更新为135。在第二次点击时,它们将更新为135140。在第三次点击它更新到135140135145等。

我希望它去从130 - 135 - 140 - 145 - 等

我也曾尝试用相同的结果如下:

$('.jquery-tester').click(function() { 
    var points = parseInt($('.userpointshead').text().trim(), 10); 
    var newpoints = points + 5; 
    $(".userpointshead").html(newpoints); 
}); 

我觉得我失去了一些东西很显而易见但不知道是什么。

更新:我已经尝试了相同的代码与新的<span>,它的工作原理,因为我想。我仍然知道为什么原来不会工作..它只是一个数字跨度。

+0

你的代码工作正常https://jsfiddle.net/x6j7g0Lg/。你确定你在原始代码中也使用了parseInt吗? – baao

+0

是的,我确定,我只是复制了它。我也看到jsfiddle工作正常,我现在有点不解。 –

+0

@RobHughes将它复制到你的代码中,看看它是否可以与'event.preventDefault()'一起工作... https://jsfiddle.net/x6j7g0Lg/1/ – caramba

回答

0

那么我或多或少地解决了它,虽然我不明白或喜欢的解决方案。

<span>添加一个额外的类,并在新类上执行jquery让一切正常工作。

<span class="userpointshead user-points"> 130 </span> 
<button class="jquery-tester">Button</button> 


$('.jquery-tester').click(function() { 
    var points = parseInt($('.user-points').text()); 
    $('.user-points').text(points+5); 
}); 

我没有其他的jQuery/JavaScript的,在我的项目.userpointshead干扰,我不明白为什么这是行不通的。

0

你的coude应该可以正常工作。 也许尝试此检查,如果问题不在别处:

$('.userpointshead').text(parseInt(points)+5); 
1

我只是尝试这样做,它的工作的罚款。

<!DOCTYPE html> 
<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
    $('.jquery-tester').click(function() { 
    var points = parseInt($('.userpointshead').text()); 
    $('.userpointshead').text(points+5); 
}); 
}); 
</script> 
</head> 
<body> 

<div> 
    <span class="userpointshead"> 130 </span> 
    <button class="jquery-tester">Button</button> 
    </div> 

</body> 
</html>