Jak mogę uzyskać klasę tabeli po kliknięciu TR? To jest mój kod

<table class='table1' border='1'>
<tr class='graph1'>
    <td>Test1</td>
    <td><a class='viewHistory'>View History<a></td>
</tr>
<tr class='graph2'>
    <td>Test2</td>
    <td><a class='viewHistory'>View History<a></td>
</tr>
<tr class='graph3'>
    <td>Test3</td>
    <td><a class='viewHistory'>View History<a></td>
</tr>
</table>

<table class='table2' border='1'>
<tr class='graph1-1'>
    <td>Test1</td>
    <td><a class='viewHistory'>View History<a></td>
</tr>
<tr class='graph2-1'>
    <td>Test2</td>
    <td><a class='viewHistory'>View History<a></td>
</tr>
<tr class='graph3-1'>
    <td>Test3</td>
    <td><a class='viewHistory'>View History<a></td>
</tr>
</table>

Kiedy klikam

<tr class='graph2'>
    <td>Test2</td>
    <td><a class='viewHistory'>View History<a></td>
</tr>

Powinien wyświetlić 'table1' lub jeśli klikam

<tr class='graph3-1'>
   <td>Test3</td>
    <td><a class='viewHistory'>View History<a></td>
</tr>

Powinien wyświetlić: 'table2'

Nie przejmuj się, że jest to dynamiczne, jego nie tylko graficznie2 lub graf3-1 zostaną kliknięte.

Jak zrobiłbym to za pomocą jQuery? Każda pomoc byłaby bardzo doceniana i nagrodzona! Dzięki!

0
PinoyStackOverflower 24 październik 2011, 13:05

3 odpowiedzi

Najlepsza odpowiedź

Używałbym closest(), aby znaleźć rodzic table. Zobacz także http://api.jquery.com/closest/

$('.viewHistory').click(function() {
  var classname = $(this). closest('table').attr('class');
  alert(classname);
}
4
Pål Brattberg 24 październik 2011, 09:11
jQuery('table tr').click(function(){
    //this is set to the row's DOM element
    jQuery(this).parent('table').attr('class');
});

Zobacz jQuery.parent Szczegółowe informacje.

Nigdy nie używał go osobiście, więc nie jestem pewien co do tego, ale jQuery.closest może zapewnić lepszą wydajność w porównaniu z jQuery.parent.

Należy również pamiętać, że poniższa próbka kodu przyłączy się do zdarzenia click dla dowolnego wiersza tabeli w dokumencie, więc lepiej dodać pewną konkretną klasę do swoich tabel (powiedzmy {x1}} i użyj go tak)

jQuery('.clickable_table tr').click(function(){
    //this is set to the row's DOM element
    jQuery(this).parent('table').attr('class');
});
1
J0HN 24 październik 2011, 09:08

Możesz użyć funkcji .Parent () (jeśli chcesz kliknąć znacznik, użyj go dwa razy) i .attr ("klasa"), aby uzyskać klasę. Myślę, że jest też .klasa czy coś, ale nie jestem pewien.

1
Flo 24 październik 2011, 09:09