j-Квери переключить следующие два элемента

У меня есть элемент выбора формы, который при выборе определенного значения будет переключать два других элемента на странице (пара dt/dd).

Событие срабатывает правильно, но я не могу получить элементы для переключения - обратите внимание, я использую селекторов классов, потому что количество этих элементов "наборы" на странице является переменной. Вот мой код:

$(".lender_id").change(function () {
if($(this).val()=='45')
   {
   $(this).next(".lender_other1").toggle();
   $(this).next(".lender_other2").toggle();
   }
});

lender_id это мой выбор элемента класса, HTML код следующим образом (как указано этот набор элементов может появиться несколько раз на странице):

<dt>Lender</dt>
<dd><select name="lender_id[1]" class="lender_id">
<option value="1">Value</option>
<option value="45">Special Value</option>
</select></dd>

<dt class="lender_other1" style="display:none;">Lender Name</dt>
<dd class="lender_other2" style="display:none;">
<input type="text" name="lender_other[1]" value="" /></dd>

<dt>Lender</dt>
<dd><select name="lender_id[2]" class="lender_id">
<option value="1">Value</option>
<option value="45">Special Value</option>
</select></dd>

<dt class="lender_other1" style="display:none;">Lender Name</dt>
<dd class="lender_other2" style="display:none;">
<input type="text" name="lender_other[2]" value="" /></dd>

etc...

Ответ на: "j-Квери переключить следующие два элемента"

Количество ответов:4

next() doesn't do what you think it does. Try $(this).parent('dl').find('.lender_other1'). Or, y'know, maybe just . Or, y'know, maybe just $('.lender_other1'). . не делает то, что вы думаете, что делает. Попробуйте $(this).parent('dl').find('.lender_other1'). Or, y'know, maybe just . Или, y'know, может быть, просто $('.lender_other1'). .

.next () только возвращает следующий матч, так что я думаю, вы должны использовать .nextAll ()

http://docs.jquery.com/Traversing/nextAll#expr

использовать метод slice(start, end) method . this is the correct way according to a video of john resig.. это правильный путь в соответствии с видео Джон Resig.

вот что вы хотите:

$(".lender_id").change(function() {
    if ($(this).val() == '45') {
        $(this).parent().nextAll(".lender_other1:first, .lender_other2:first").toggle();
    };
});

EDIT

Я объединил класс селекторов вместе, чтобы сделать его более эффективным.