2011-01-14 8 views
1

Каков правильный способ поиска индекса элементов. Я использую div, который добавляет новый div в контейнер, и я должен «иметь» новый идентификатор на основе индекса - это позволяет легко индексировать функцию удаления позже. то есть я могу просто запустить each function обновить идентификаторы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

+0

@Reigel - извините, пропустил ваш комментарий. html очень просто, только 2 "контейнера" ​​divs - form & #pollpreview –

ответ

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

yep - У меня было что-то вроде этого раньше (что сработало) Я просто надеялся использовать« индекс », а не длину, поэтому упростить переиндексацию в функции удаления - такая жизнь –

+0

@ Russell: Почему вы хотите переиндексировать при удалении элементов? Это не обязательно. – Tomalak

0

Это даст вам индекс элемента с классом «pollq» относительно его контейнера:

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

Это то, что вы хотели?

т.е. индекс будет "2" в следующем примере:

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

@David - вот что я думал, но он дает мне «глупые» числа, т. е. всегда индекс 7, но есть только 2 «статических» опроса - странный? –

+0

'$ ('. Something')' не работает "относительно контейнера". Это документально. – Tomalak

+0

@Tomalak: да, но 'index' относится к контейнеру –

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