1

所以我有一个使用while循环从数据库生成的表。数据按行显示。关键是有一些“隐藏”的行,其中的数据仅在点击时可用(如显示详细信息)。基本上我想要这样的东西:http ://www.transfercar.co.nz/ - 如果你点击表格行,下面会出现更多数据(在新行中)。

我的代码如下所示:

while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
$display1=$display1+1;
    echo '
    <tr class="tablerow">
        <td>' . $row['id'] . '</td>
        <td><p class="state">' . $row['name'] . '</p></td>
        <td><p class="state">' . $row['surname'] . '</p></td>
        <td>' . $row['country'] . '</td>
        <td>' . $row['city'] . '</td>
        <td>' . $row['category'] . '</td>
    </tr>';
if($row['id']==$_GET['showrow'])
{
    echo '
    <tr class="subtable" style="display:none;">';
        echo '<td colspan="3" class="detalji"></td>
        <td align="left" colspan="3" class="detalji"></td>
        </tr>';}} // End of WHILE loop.
echo '</table>';

我的 jQuery 看起来像这样:

/* Table row click */
$(".tablerow").click(function()
{
  $(".subtable").show();
}); 

$(".subtable").click(function()
{
  $(".subtable").hide();
}); 

重点是一旦点击了所有子表显示,我自然只想要点击的表行下方的那个..

4

2 回答 2

1

尝试这个

$(".tablerow").click(function() {
    // Hideing all the tr with class subtable rows initially
    $('.subtable').hide();
    // Find the next tr which has class subclass in current context
    $(this).next('.subtable').show();
});

$(".subtable").click(function() {
    // Hide current row that has class subtable
    $(this).hide();
});​
于 2012-09-28T18:05:31.367 回答
0

我已经设法使用这样的代码解决它:

$(".tablerow").click(function()
{
  $(this).next(".subtable").slideDown("slow");
}); 

$(".subtable").click(function()
{
  $(".subtable").hide();
});

sushanth reddy 非常有帮助,谢谢!我不确定为什么这段代码有效而 Sushanth 不是。某处可能有错字,但无论如何 Susanth 提供了正确的答案,因此我将使用正确的代码编辑他的回复。

于 2012-09-30T13:32:12.187 回答