ваш html искажен, и ваш jquery не делает выбор правильного элемента ... вы переходите к элементу таблицы, а затем пробуете одно слово, но это ничего не дает.
попробуйте этот html:
<table>
<tr>
<th>Name</th>
<th>Options</th>
</tr>
<?php // loop over items
while ($row = mysql_fetch_assoc($qry)){ ?>
<tr>
<td><?=$row['name'];?></td>
<td><a href="#" class="trigger">Detail</a></td>
</tr>
<tr class="details">
<td colspan="2">
stuff
</td>
</tr>
<?php
} ?>
</table>
и этот jquery:
$(function(){
$('.trigger').click(function() {
$(this).parents("tr").next().slideToggle();
return false;
});
});
рабочий пример: http://jsfiddle.net/saelfaer/Z6MzS/
edit просто чтобы упомянуть, что я изменил
у вас был открытый тег <td>
, в котором отсутствовал >
, также я переместил class="details"
в элемент <tr>
, который должен быть показан / скрыт.
в jquery я изменил ваш селектор, поднявшись к таблице, поднявшись к строке таблицы, и выбрал строку таблицы .next()
(которая на самом деле должна быть показана или скрыта, а затем переключена).это.
улучшений, которые вы можете сделать: сначала спрячьте tr.details
корыто css
tr.details {
display: none;
}