2012-06-14 2 views
0

Скажем, у меня есть список, как это:Выбор внутри DIVs

<ul class="list"> 
<li><span class="pos"><div class="txt_pos">1</div></li> 
<li><span class="pos"><div class="txt_pos">2</div></li> 
<li><span class="pos"><div class="txt_pos">3</div></li> 
<li><span class="pos"><div class="txt_pos">4</div></li> 
<li><span class="pos"><div class="txt_pos">5</div></li> 
</ul> 

и мои JS:

$(".list span.pos").each(function(i) { 
    var newOne = i; 
    newRank = getNth(newOne); 

    $("> .txt_pos").slideToggle('slow'); 
    $(this).text(newRank); 

    $("> .txt_pos").slideToggle('slow');       
}); 

Как мне сделать это выбрать каждый li, потому что прямо сейчас, это делает каждый список элемент в ONCE. Я пытаюсь выбрать ребенка из .pos.

+1

Вы пробовали '$ (" txt_pos", это)' вместо '$ ("> .txt_pos")'? – Engineer

+2

Несколько советов - 'span' не имеют концевого тега. Не помещайте элементы 'block', такие как' div' в 'inline', например' span' – Bongs

+0

@Engineer. Я не отвечаю быстрее. – gdoron

ответ

1
$(".list span.pos").each(function(i) { 
     var newOne = i; 
     newRank = getNth(newOne); 

     $(this).children('.txt_pos').slideToggle('slow'); 
     $(this).text(newRank); 

     $(this).children('.txt_pos').slideToggle('slow'); //not sure why you're doing this again? 
)}; 
+0

Возможно, вы захотите кэшировать '$ (this) .children ('. Txt_pos')' – vzwick

3

Используйте .children(), чтобы выбрать ребенка.

$(this).children('.txt_pos') 

Или, если вы хотите, чтобы выбрать li(вы, кажется, говорят оба) используйте .parent().

$(this).parent() 
+0

+1. Есть и другие проблемы, где есть '' ...? – gdoron

+0

@ gdoron: Правда. Там есть какой-то плохой HTML, включая 'div', предположительно внутри' span'. –

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