2013-06-11 61 views
0

我試圖增加一個屬性onclick在jquery,每次1。增加屬性onclick在jquery

比方說,我有這個按鈕,它的頁面上唯一.new-rcc

<a class="new-rcc" data-attr="1" href="#"><span>Button &raquo;</span></a> 

每次單擊按鈕時,我需要data-attr 1增加,所以它只是從1增加2〜3〜4等

我試圖做這樣的事情:

var showthese = $('.new-rcc').prop('data-attr'); 
$('.new-rcc').click(function(){ 
    var showtotal = showthese++; 
    $(this).prop('data-attr', showtotal); 
    return false; 
}); 

但它似乎沒有要工作?

+1

我建議使用'.data('attr')'而不是'.prop('data-attr')'。這有很多原因,但主要是因爲如果將「data-attr」作爲屬性附加,jQuery將無法識別它,只有當它通過.data()附加時,纔會等待您的jQuery版本。 –

回答

3

數據屬性都沒有屬性,所以你必須使用attr(),而不是prop()

var showthese = $('.new-rcc').data('attr'); 
$('.new-rcc').click(function(){ 
    showthese++; 
    $(this).attr('data-attr', showthese); 
    return false; 
}); 
,您可以用 data()

FIDDLE

音符來獲取值,但與data()設定值並不真正更新屬性,它只是由jQuery內部存儲。

+0

嘿,打我吧http://jsfiddle.net/6qpHv/1/爲清晰起見添加了提醒。 –

+0

呃..當然哈哈。我知道它一定很簡單!我會接受,當它讓我:) – Xhynk

2

表達式showthese++的值是原始showthese

您需要預增值運算符(++showthese),該運算符的計算結果爲結果值。