2017-07-24 72 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>