2012-05-23 14 views
0

Я не могу понять, как получить .each, работая при использовании относительного пути (а не только имени класса). Это работает при правильной проверке выбора радиокнопки, однако затем переходит к показу .radio_select для обоих из них. Таким образом, это явно просто проверка первого значения, а затем применение результатов для обоих, когда я хотел бы, чтобы он проверял как индивидуально. Кто-нибудь может понять, что я делаю неправильно? Есть ли лучший способ, которым я мог бы это сделать? Любая помощь приветствуется, спасибо.JQuery.each при использовании относительного пути?

<div id='pid'></div> 

<div class='comment_reply_holder'> 

<div class="radio_holder"> 
<div class='radio_select'> 
<input class='hidden_radio' type='radio' checked='true'> 
</div> 
</div> 

<div class="radio_holder"> 
<div class='radio_select'> 
<input class='hidden_radio' type='radio'> 
</div> 
</div> 

</div> 

<script> 
radio = $('#'+pid).next('.comment_reply_holder').children().find('.radio_holder'); 
radio.each(function() { 
if (radio.children().find('.hidden_radio').prop("checked") == true) { 
radio.children().find('.radio_select').show(); 
} 
}); 
</script> 

Примечание: «PID» DIV создается динамически на сайте, поэтому я захватывая информацию таким образом, если вы задаетесь вопросом, почему я даже создать путь к нему таким образом.

ответ

1

Просто используйте this (т. Е. Текущий итерационный элемент) внутри функции обратного вызова, а не вашу внешнюю переменную radio.

+0

Ха-ха, ничего себе, такая очевидная ошибка, но я просто не мог обвести вокруг себя голову. Спасибо. – Ian

0
radio.each(function(i,elem) { 
    if (elem.children().find('.hidden_radio').prop("checked") == true) { 
    elem.children().find('.radio_select').show(); 
    } 
}); 
0

Почему вы используете радио? Вам нужен товар?

radio.each(function(i, item) { 
    if (item.children().find('.hidden_radio').prop("checked") == true) { 
    item.children().find('.radio_select').show(); 
} 
Смежные вопросы