0

我有一些看起来像这样的 HTML 标记:

 <tr>
    <td>
        <a href="javascript:void(0)" class="slideNextSlidable">Click Here</a>
    </td>
</tr>
<tr class="slidable">
    <td>
    <p>Hide me</p>
    </td>
</tr>

还有我的 javascript / jquery:

$(function() {
    $('.slideNextSlidable').click(function() {
        $(this).parent().next('.slidable').hide();
    });
});​

然而,这似乎并没有得到.slidable tr

我正在尝试隐藏单击的链接.slidable旁边(或最接近)的行。.slideNextSlidable

这嵌套在 foreach 循环中(有很多这样的行)

见小提琴:http: //jsfiddle.net/alexjamesbrown/Zx5sR/

4

3 回答 3

3

好像您正在寻找$.closest()。来自 jQuery API 文档:

对于集合中的每个元素,通过测试元素本身并向上遍历其在 DOM 树中的祖先来获取与选择器匹配的第一个元素。

然后简单地说:

$('.slideNextSlidable').click(function() {
    $(this).closest('tr').next('.slidable').hide();
});
于 2012-11-19T15:50:10.723 回答
1

尝试.closest()

$('.slideNextSlidable').click(function() {
    $(this).closest('tr').next('.slidable').hide();
});

演示

于 2012-11-19T15:49:48.473 回答
1
$(function() {
    $('.slideNextSlidable').click(function() {
        $(this).parent().parent().next('.slidable').hide();
    });
});

第一个父母是td​,它的父母是tr

于 2012-11-19T15:51:02.183 回答