2013-02-08 82 views
0

我試圖把在元素列表中的號碼 - 動態越來越多的 - 這樣的:動態增加數(計算單元)

1. text 
2. text 
3. ... 
... 

到目前爲止,我有這樣的:

var c = { 
    current: 0, 
    count: function() { 
     this.current++ 
    } 
} 
$('.box').each(function (index) { 
    $(".number").text(c.current + 1); 
    c.count(); 
}); 
  • 參見jsfiddle。但是我錯過了什麼?我如何給每個元素分配自己的數字?

謝謝。

回答

2

http://jsfiddle.net/Qzk3P/4/,你忘了添加上下文參數,見下面的例子:

$(".number", this).text(c.current + 1); 

通知this

編輯:我添加了另一個例子用CSS屬性計數器,你也可能會喜歡它: http://jsfiddle.net/Qzk3P/6/

+0

這是輝煌...謝謝,Pawel_W。 – Meek 2013-02-08 13:06:24

+0

+1,一個選項:'$(this).find('。number')。text(c.current + 1);' – Johan 2013-02-08 13:06:38

+0

我喜歡css屬性計數器 - 非常整潔! – Meek 2013-02-08 13:16:59

0
var c = { 
    current: 0, 
    count: function() { 
     this.current++ 
    } 
} 
$('.box').each(function (index,v) { 
    $(v).children(".number").text(++c.current); 
    //c.count(); 
}); 
1

您正在更改".number"的文字,該文字恰好存在4次。更新您的代碼,這樣的:

$('.box').each(function (index) { 
    $(".number", this).text(c.current + 1); 
    c.count(); 
}); 

this是上下文。所以你只在當前迭代中尋找".number"元素".box"

1

你也似乎在嘗試做太多。

這就是你需要做的一切。

var count = 0; 
$('.box').each(function (index) { 
    count ++; 
    $(".number", this).text(count); 
}); 

http://jsfiddle.net/Qzk3P/5/