Используя функцию JQuery Nearest ()?

Вот мой HTML:

<tr>
    <td class="show_r3c">click here</td>
</tr>
<tr class="r3c">
    <td>This is what I'd like to display</td>
</tr>

И в настоящее время у меня есть этот код JQuery,

    $(document).ready(function(){
        $(".r3c").hide();        
        $('.show_r3c').click(function() { 
                         $(this).closest('.r3c').toggle(); 
                         return false; 
        });
   });

По какой-то причине функция closest() не работает, и она не переключает строку таблицы .r3c - я пробовал использовать родительские и другие альтернативы, но тоже не могу заставить ее работать :(

Извиняюсь за глупый вопрос, и что-то похожее на проблему, которая у меня была раньше. Просто интересно, какое лучшее решение для этого?

Спасибо!


person Nick    schedule 28.08.2009    source источник


Ответы (3)


Попробуйте с:

$('.show_r3c').click(function() {
  $(this).parent('tr').next('tr.r3c').toggle();
  return false;
});
person Christian C. Salvadó    schedule 28.08.2009

ближайший() находит ближайшего родителя, а не родителей-братьев-детей.

Вы хотите что-то вроде:

$(document).ready(function(){
    $(".r3c").hide();

    $('.show_r3c').click(function() { 
        $(this).closest('table').find("tr.r3c").toggle(); return false; 
    });
});
person Damo    schedule 28.08.2009
comment
Поскольку вопрос был «Использование функции JQuery Nearest ()?» это лучший ответ точно. Другие ответы больше о том, как пройти DOM с помощью jquery без использования ближайшего :) - person Ryan White; 22.09.2009

возможно, это сработает:

$(document).ready(function(){
    $(".r3c").hide();

    $('.show_r3c').click(function() { 
        $(this).parent().siblings(":first").toggle(); 
        return false; 
    });
});
person stefita    schedule 28.08.2009