单击一个元素后选择接下来的两个元素.(jquery)
Selecting next two elements after clicking one. (jquery)
我有一个这样的表:
<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为display: none。我的目标是点击clickme并显示接下来的两个,但只有这两个,而且只有我点击的clickme"下面"的那些。
我试过了:
$('.clickme').click(function (e) {
$(this).closest('.hidden1').remove();
$(this).closest('.hidden2').remove();
});
没有回应。很多不同的东西。我尝试了兄弟姐妹,并取得了一定的成功,但它只显示了整个表中的第一个匹配。这个表可以有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();
如果您有其他不想在以下".clickme"
之前选择的元素,因此无法使用VisioN的解决方案,您可以:
$('.clickme').click(function (e) {
$(this).nextAll(".hide1").eq(0).toggle();
$(this).nextAll(".hide2").eq(0).toggle();
});
相关文章:
- 两个指令创建新的继承的和隔离的作用域-元素得到哪个
- 如何在jQuery中包装两个元素的组
- JavaScript:当有两个B类元素时,如何在id X中的B类中选择A类
- 无法使以下ng on click outside指令在同一页面上的两个元素上工作
- Jquery:当两个或多个条件为true时,选择一个元素
- 如何按id查找两个类中任一类的子元素
- react-让一个元素返回两个相邻的<tr>标签
- 检查来自不同数组的两个元素的一个属性是否相等
- javascript函数包含两个元素和web音频api
- 如何比较两个字符串并删除jquery中的元素
- 将JQuery单击事件直接指向同一元素的两个
- 如何使用jQuery绕过具有指定类和两个条件的元素的函数
- 使用Javascript匹配两个HTML元素的高度
- 如何在两个动画画布元素之间进行通信
- 如何将日期和时间拆分为两个元素
- 检查最后两个元素
- 如何选择嵌套了两个 .each() 函数的多个元素
- 在两个元素的 onrender 事件之后执行函数
- 检查两个或多个 DOM 元素是否重叠
- 如何在同一个表中显示这两个嵌套ng重复的元素