Используя функцию JQuery closest ()? - PullRequest
7 голосов
/ 28 августа 2009

Вот мой 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 - я пробовал использовать родительские и другие альтернативы, но также не могу заставить ее работать: *

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

Спасибо!

Ответы [ 3 ]

21 голосов
/ 28 августа 2009

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

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

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

    $('.show_r3c').click(function() { 
        $(this).closest('table').find("tr.r3c").toggle(); return false; 
    });
});
12 голосов
/ 28 августа 2009

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

$('.show_r3c').click(function() {
  $(this).parent('tr').next('tr.r3c').toggle();
  return false;
});
4 голосов
/ 28 августа 2009

возможно, это будет работать:

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

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