在这个jQuery表扩展中看不到我的错误

时间:2010-08-17 04:59:36

标签: jquery mysql html-table

我正在关注本教程: http://www.javascripttoolbox.com/jquery/

我正在尝试获取由mySQL填充的表行以展开以显示详细信息。令人奇怪的是,firebug将行显示为隐藏(灰色),当我单击上面的行时,行将显示为灰色。问题是它们实际上并未隐藏在屏幕上。当我点击“父”行时,我可以看到该行向下移动几个px,但就是这样。

这是我的表:

<?php
while($row = mysql_fetch_array($result)){
    ?>
    <tr class="parent" id="<?php echo $row['id'] ?>">
        <td><?php echo $row['type'] ?></td>
        <td><?php echo $row['description'] ?></td>
        <td><?php echo $row['recorded_date'] ?></td>
        <td><?php echo $row['added_date'] ?></td>
    </tr>
    <br /> 
    <tr style="display: none;" class="child-<?php echo $row['id'] ?>"></tr>
        <td>&nbsp;</td>
        <td>2007-01-02</td>
        <td>A short description</td>
        <td>15</td>

    </tr>
    <br /> 

  <?php 
}
mysql_close();
?>
</table>

jQuery(标签上方):

$(function() {
    $('tr.parent')
        .css("cursor","pointer")
        .attr("title","Click to expand/collapse")
        .click(function(){
            $(this).siblings('.child-'+this.id).toggle();
        });
    $('tr[@class^=child-]').hide().children('td');
});

1 个答案:

答案 0 :(得分:3)

删除此行末尾的</tr>

<tr style="display: none;" class="child-<?php echo $row['id'] ?>"></tr> 

您的“child-id#”行不包含单元格。因此点击时轻微移动。最后的</tr>没有关闭任何标签,只是额外的。

可以删除表行之间的换行符。它们是多余的(和不正确的HTML)。 <tr></tr>代码会自动从新行开始。