28

我有一个表格,其中包含行、包含单元格 - 其中一些包含一个 img,如下所示:

<img id="FormView1_btnSave_row1%1%new" style="border-width: 0px; cursor: pointer;"
src="grafik/ok_16x16.gif" onclick="cleverStuff(this)"/>

在功能cleverStuff中,我想在单击按钮的行之后的行上进行操作-这个特殊按钮仅包含在最后一个可见行中,下面有一堆隐藏线,我想做第一个隐藏线可见 - 但我无法到达下一行。我的理解是parent()and的所有组合next()都可以用来从 img 到 td,到 tr,最后到下一个 tr。所以我试图验证这一点:

$(ctrl).attr('id')正确返回 img 的 id :)

$(ctrl).parent().attr('id')返回 NULL。

我在这里想念什么?

4

4 回答 4

89

这应该为您提供元素的封闭 tr,即使它不是元素的直接父级,也是该行的下一行。如果您在 td 内的元素上使用 parent,它将为您提供列,而不是行。为 parent() 方法提供过滤器将简单地过滤掉父级,除非它恰好匹配过滤器,通常会导致没有匹配的元素。Closest 可能是您想要的,但如果您有嵌套表并且想要外行而不是内行,则可能需要 parents('tr') 。

$(this).closest('tr').next('tr')
于 2009-11-02T15:58:19.123 回答
32

您确实没有向我们展示足够的 HTML,但这应该可以:

$(ctrl).parent('tr').next();
于 2009-11-02T15:53:06.333 回答
5

也许父元素没有设置它的id?要从图像中进入下一行,我相信你可以这样做:

$(this).parent('tr').next('tr')
于 2009-11-02T15:55:00.113 回答
1

我希望你能用

jQuery(this).parents('tr'); 
于 2013-11-24T10:33:41.997 回答