【问题标题】:jQuery: find next table-rowjQuery:查找下一个表格行
【发布时间】:2009-11-02 15:50:39
【问题描述】:

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

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

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

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

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

我在这里错过了什么?

【问题讨论】:

  • 那么,img 的父级的 html 是什么?有id吗?

标签: javascript traversal


【解决方案1】:

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

$(this).closest('tr').next('tr')

【讨论】:

  • 这会返回我之前的 tr。 ://
  • @AlphaMale 对我来说似乎不可能
  • 我在使用这个函数时遇到错误 --Uncaught TypeError: objColumn.closest(...).next is not a function
【解决方案2】:

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

$(ctrl).parent('tr').next();

【讨论】:

  • 谢谢 Greg - 你很快就让我走上了正确的轨道:我已经用 parent(tr) 替换了我的空“父母”,突然事情看起来好多了:) 会给“检查”,如果可能的话,也可以评价按照相同思路回复的 toby 和 tvanfosson。
  • @tvanosson 的回答更好
【解决方案3】:

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

$(this).parent('tr').next('tr')

【讨论】:

    【解决方案4】:

    希望你能用

    jQuery(this).parents('tr'); 
    

    【讨论】:

      猜你喜欢
      • 2010-09-12
      • 2012-04-18
      • 1970-01-01
      • 2011-07-09
      • 2019-10-24
      • 2011-04-09
      • 2010-12-20
      • 2011-11-29
      • 1970-01-01
      相关资源
      最近更新 更多