javascript - 单击一个元素后选择接下来的两个元素。 (jquery)

标签 javascript jquery traversal

我有这样一张表:

<table>
<tbody>
<tr class='clickme'>
<td>...</td>
</tr>
<tr class='hidden1'>
<td>...</td>
</tr>
<tr class='hidden2'>
<td>...</td>
</tr>
<tr class='clickme'>
<td>...</td>
</tr>
<tr class='hidden1'>
<td>...</td>
</tr>
<tr class='hidden2'>
<td>...</td>
</tr>
[etc.]
</tbody>
</table>

.hidden1 和 .hidden2 显示:无。我的目标是点击 clickme 并显示接下来的两个,但只有那两个,而且只有我点击的 clickme“下面”的那些。

我试过最接近的:

$('.clickme').click(function (e) {
    $(this).closest('.hidden1').remove();
    $(this).closest('.hidden2').remove();
});

没有回应。多种不同的东西。我尝试了 siblings 并取得了一定的成功,但它只显示了整个表格中的第一场比赛。该表可能有 100 个这样的对。

$('.clickme').click(function (e) {
        $(this).siblings(".hidden1:first").toggle(); 
        $(this).siblings(".hidden2:first").toggle(); 
    });

我很难过,我觉得这是一个非常简单的解决方案!

最佳答案

对于您的标记,使用 .nextUntil() 很容易:

$(".clickme").click(function() {
    $(this).nextUntil(".clickme").toggle();
});

演示: http://jsfiddle.net/XEF2v/

如果中间可能有其他行,您可以使用 .filter() 过滤它们:

$(this).nextUntil(".clickme").filter(".hidden1, .hidden2").toggle();

关于javascript - 单击一个元素后选择接下来的两个元素。 (jquery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16110146/

相关文章:

jquery - 为菜单 2 级添加事件,hiliting 2 级菜单 jquery

algorithm - 从任意坐标向外遍历二维数组到边界

javascript - JSON forEach() 和函数作为参数解释

javascript - 如何调试 Facebook Messenger 扩展?

javascript - 如何使 vanilla Bootstrap 与 Node 上的 React 一起工作?

jquery - 使用 jQuery 在向上滚动和向下滚动时添加不同的 CSS 动画

jquery - 如何在 Symfony2 上通过多个按钮发送附加信息?

JavaScript 匹配用户选择的整个字符串,跳过电子邮件和 URL

php - PHP中遍历多维数组的递归方法

javascript - 在 jQuery 中查找前一个 sibling 的 child