2013-02-08 3 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

EDIT: Я добавил еще один пример со счетчиком CSS-свойство, вы можете также, как это: http://jsfiddle.net/Qzk3P/6/

+0

Это гениально ... Спасибо, Pawel_W. – Meek

+0

+1, опция: '$ (this) .find ('. Number'). Text (c.current + 1);' – Johan

+0

Мне понравился счетчик css-property - очень аккуратный! – Meek

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/

Смежные вопросы