2011-02-08 12 views
2
$('.fav').live('click', function(e){ 
    $(this).toggleClass('highlight'); 
    //increase the number by 1 

HTML:jqueryを使用して数字を1つ増やしますか?

<li class="fav light_gray_serif">5</li> 

がどのように私はそのクリックした李毎回間の数を増やすためにjqueryのを使用することができますか?お礼

答えて

13
var num = parseInt($.trim($(this).html())); 
$(this).html(++num) 
+3

@getaway Thx。 '$(this).html( - num)'が動作するはずです。 –

4

.html()またはをご覧ください。ここでは一例です:ちょうどプラグインを使用

$(this).text(function(i, t) { 
    return Number(t) + 1; 
}); 
+0

+1(これは、 'parseInt'の代わりに' Number'と 'html()'の代わりに 'text()'を使用しているためにはるかに良い答えですが、これまでのupvotesはありません? –

+0

@ box9なぜ 'Number'が' parseInt'よりも優れているのか気にしてください。 http://jsperf.com/number-vs-parseint-vs-plus/7なぜ 'text()'は 'html()'よりも優れていますか? –

+2

@ Scrum、 'Number'と' parseInt'の関係は本当に依存しますが、通常 'Number'は' 1abc2'のような文字列を拒否するので意味的です。 'parseInt'は最初の部分を解析します。ここでも、 'text()'は文書の人間が読める部分を表すので、より意味的に正しいですが、誰かが何らかの目的のためにスパンに数字をラップすることを決めた場合に安全です出力、あなたの文字列がエスケープする必要がない限り、実際には関係ありません)。 –

1

(function($) { 
    $.extend($.fn, { 
     "addOne": function() { 
       var num = parseInt(this.text(), 10); 
       this.text(++num); 
     }, 
     "subtractOne": function() { 
       var num = parseInt(this.text(), 10); 
       this.text(--num); 
     } 
    }); 
}(jQuery)) 

次に呼び出す

$(".fav").live("click", function(e) { 
    $(this).toggleClass("highlight").addOne(); 
}); 
3

HTML:

<span id="counter">0</span> 

のjQuery:このように、既存のボタンをクリックしたときにあなたがカウンターを増やすことができます

$('#counter').text(Number($('#counter').text())+1); 

$(document).on('click','#your-button', function(){ 
    $('#counter').text(Number($('#counter').text())+1); 
}); 
関連する問題