我在这里遗漏了一些东西。单击类one
的行时,我只想找到类two
的最近的行,然后切换(显示/隐藏)它。
$(".one").on('click', function() {
$(this).find('.two').toggle();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr class="one">
<td> Hello </td>
</tr>
<tr>
<td> world </td>
</tr>
<tr class="two">
<td> Foo </td>
</tr>
<tr class="two">
<td> Bar </td>
</tr>
</table>
答案 0 :(得分:3)
这样的事情:
$(".one").on('click', function() {
$(this).nextAll('.two:first').toggle();
});
答案 1 :(得分:0)
我想你可能想要.next()
。它找到DOM中的下一个兄弟,尊重DOM中的位置。
或者这可能是:get the next element with a specific class after a specific element
修改强>
Here是一个有效的解决方案:
$('.one').on('click', function () {
var this_el = $(this);
var el = findNextWithClass(this_el, "two");
if (el != null)
{
el.toggle();
}
else
{
alert("null");
}
});
function findNextWithClass(element, className) {
var next = element.next();
if (next.hasClass(className)) {
return next
} else {
if (next != null) {
return findNextWithClass(next, className);
} else {
return null;
}
}
}