首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery切换表中的下一行

问jQuery切换表中的下一行
EN

Stack Overflow用户
提问于 2011-10-07 07:18:58
回答 1查看 4.3K关注 0票数 0

我不知道为什么这不起作用。

HTML

代码语言:javascript
复制
<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>
    <td colspan="100%" class="details">
    stuff
    </td>
  </tr>
  <?php
} ?>
</table>

那么我使用的jQuery是..。

代码语言:javascript
复制
$(document).ready(function () {  
  $('.trigger').click(function() {
    $(this).parents("table").siblings(".details").slideToggle();
    // also tried this...
    // $(this).parents("table").nextAll(".details").slideToggle();
    return false;
  });
});  

我已经尝试将details类移动到TR。我想要的是,当有人点击“详细信息”链接时,下面的TR应该切换。我已经在最上面的桌子上放了一个ID,并提醒了parent的attr('id'),这就起作用了。将".siblings“更改为".find”可将它们全部切换。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-07 07:28:19

您的html格式不正确,您的jquery没有选择正确的项目...您转到table元素,然后尝试兄弟元素,但没有得到任何结果。

试试这个html:

代码语言:javascript
复制
<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:

代码语言:javascript
复制
$(function(){
  $('.trigger').click(function() {
    $(this).parents("tr").next().slideToggle();
    return false;
  });
});

工作示例:http://jsfiddle.net/saelfaer/Z6MzS/

编辑只是为了提到我所做的更改

您有一个缺少>的<td>打开标记,而且,我将class="details"移到了要显示/隐藏的<tr>元素中。

在jquery中,我将选择器向上移至表,改为向上移至表行,并选择了.next()表行(这实际上是需要显示或隐藏的行。然后切换到那个。

你可以做的改进:首先通过css隐藏tr.details槽

代码语言:javascript
复制
tr.details {
  display: none;
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7681561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档