2011-01-14 47 views
1

什么是找到元素索引的正确方法。我使用的是一个div,它将一个新的div附加到一个容器中,并且我必须“有”一个基于索引的新ID - 这可以在稍后对删除函数进行简单的索引。也就是说我可以只运行一个each function更新ID的jquery查找下一个索引

这是我的代码: - 我想找到.pollq类的索引时#addoption点击

$('#addoption').live('click',function(){ 
    var index = index('.pollq'); 

    alert(index); 

    $(this).parent('form').append('<br /><label for="">Option #'+($('.pollq').length+1)+'</label><input type="text" id="polloption'+($('.pollq').length+1)+'" class="pollq generate" />'); 

    $('#pollpreview').append('<br /><input type="radio"><span class="polloption'+($('.pollq').length)+'">Options polloption'+($('.pollq').length)+'</span>'); 

}); 
+0

如果你能提供一些HTML,请做。 – Reigel 2011-01-14 08:46:08

+0

@Reigel - 抱歉错过了您的评论。 html很容易只是2“容器”的div - 形式&#pollpreview – 2011-01-14 08:55:14

回答

2
$('#addoption').live('click',function(){ 
    var i = $(this).parent('form').find('.pollq').length; 
    var id = "polloption"+i; 

    $(this).parent('form').append(
     '<br /><label for="'+id+'">Option #'+i+'</label><input type="text" id="'+id+'" class="pollq generate" />' 
    ); 

    // note that this should be a <label>, too 
    $('#pollpreview').append(
     '<br /><input type="radio"><span class="'+id+'">Options '+id+'</span> 
    '); 
}); 
0

这会给你一个元素的索引与类“pollq”,相对于它的容器:

var index = $('.pollq').index(); 

这就是你想要的吗?

即指数将是 “2”,在下面的例子:

<div> 
    <div class="something"></div> 
    <div class="something-else"></div> 
    <div class="pollq"></div> 
</div> 
+0

@大卫 - 这是我认为,但它是给我“愚蠢的”数字,即总是一个索引7但只有2“静态”pollq的 - 奇怪? – 2011-01-14 08:37:57