2011-06-10 48 views
0

有一个动态生成的表单。对于每个表单输入字段('.questions')。我想显示字段的数量(按时间顺序排列)。所以第一场显示1秒,第二场结束如此。jQuery:给每个表单字段一个按时间顺序递增的数字

我想我已经在这段代码中得到了它,但现在它为每个元素提供每个数字,所以输入字段one = 1234和two = 1234,它应该是one = 1 two = 2。

$('.questions').each(function(index) { 
    var num = index + 1; 
    ('<p class="num">'+num+'</p>').insertBefore('.questions'); 
}); 

现在的作品的权利:

$('.questions').each(function(index) { 
    var num = index + 1; 
    ('<p class="num">'+num+'</p>').insertBefore(this); 
}); 

回答

1

或者你可以使用

$('.questions').each(function(index) { 
var num = index + 1; 
$('<p class="num">'+num+'</p>').insertBefore($(this)); 
}); 

的问题是,当您使用的insertBefore方法,您再次使用” .questions选择所有元素'选择器。而您实际上想要在$(this)jquery对象表示的当前元素之前插入它。

+0

我在每个元素之前得到'[object Object] 1'。我究竟做错了什么? – rubo77 2013-10-01 02:50:55

+0

我拥有它:'onclick'中的索引是一个对象,与'each'内部不同 – rubo77 2013-10-01 03:21:21

0

的问题是与每一声明的回调里面的NUM。 将num的声明移到回调之外。

试试这个:

var num = 0; 
$('.questions').each(function(index) {  
    num = index + 1;   
    $('<p class="num">'+num+'</p>').insertBefore(this); 
}); 
+0

ty,但它仍然列出输入字段之前的所有数字。但我认为它给了我一个想法如何解决它.. – Rob 2011-06-10 13:30:37

+0

@Rob:更新了帖子..请现在它chk ... – Chandu 2011-06-10 13:44:07