2013-06-11 60 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),该运算符的计算结果为结果值。