为表jQuery的所有行运行代码

为表jQuery的所有行运行代码,jquery,jquery-selectors,Jquery,Jquery Selectors,我使用这段代码在一个条件下隐藏表的第六列中的元素(我的意思是如果表的第四列的文本是“0”)。 但此代码仅适用于表的第一行。 如何对目标表的所有行执行此函数 if ($('#table tr td:eq(4) > span').text() == "0") { $('#table tr td:eq(6) > .PrintReport').hide(); } 我得走了,但这应该行得通: 在每一行中循环。每个 $("#table tr")

我使用这段代码在一个条件下隐藏表的第六列中的元素(我的意思是如果表的第四列的文本是“0”)。
但此代码仅适用于表的第一行。
如何对目标表的所有行执行此函数

if ($('#table  tr  td:eq(4) > span').text() == "0") {
            $('#table  tr  td:eq(6) > .PrintReport').hide();
        }

我得走了,但这应该行得通: 在每一行中循环。每个

 $("#table tr").each(function() {
      $(this).children("td:eq(6) > .PrintReport").hide();
      });

我得走了,但这应该行得通: 在每一行中循环。每个

 $("#table tr").each(function() {
      $(this).children("td:eq(6) > .PrintReport").hide();
      });

我认为您应该使用each()使其适用于每一行。请尝试以下内容(只是动态编写,未经测试):


我认为您应该使用each()使其适用于每一行。请尝试以下内容(只是动态编写,未经测试):


如果您可以发布
tr
的完整HTML结构,那么您将获得更优化的解决方案。查看现有代码,您可以执行以下操作:

$('#table tr').each(function() {
  var text = $('td:eq(4) > span', this).text();

  $('td:eq(6) > .PrintReport', this).toggle(text != '0');
});
注意,在循环中,我使用
this
作为选择器中的上下文

编辑:解释上述部分代码-

  //This runs the selector in the context of 'this' (the table row)
  //It is functionally equivalent to $(this).find('td:eq(6) > .PrintReport')
  $('td:eq(6) > .PrintReport', this)

  //This will .show() it if the expression evaluates to true
  //and hide if false
  .toggle(text != '0')

如果您可以发布
tr
的完整HTML结构,那么您将获得更优化的解决方案。查看现有代码,您可以执行以下操作:

$('#table tr').each(function() {
  var text = $('td:eq(4) > span', this).text();

  $('td:eq(6) > .PrintReport', this).toggle(text != '0');
});
注意,在循环中,我使用
this
作为选择器中的上下文

编辑:解释上述部分代码-

  //This runs the selector in the context of 'this' (the table row)
  //It is functionally equivalent to $(this).find('td:eq(6) > .PrintReport')
  $('td:eq(6) > .PrintReport', this)

  //This will .show() it if the expression evaluates to true
  //and hide if false
  .toggle(text != '0')
更新:如果要查找第4列和第6列(人工测量),则必须分别使用3和5作为
:eq
,因为它使用基于0的索引。我留下了我的例子,只是想给这个警告

我还添加了一个工作演示:

更新:如果要查找第4列和第6列(人工测量),则必须分别使用3和5作为
:eq
,因为它使用基于0的索引。我留下了我的例子,只是想给这个警告

我还添加了一个工作演示:

所有td都有PrintReport类?你能给我们你在JSFIDLE上的问题吗?@Vivek是的,他们都有这个类所有td都有PrintReport类?你能给我们你在JSFIDLE上的问题吗?@Vivek是的,他们都有这个类这不检查span的值是否为“0”@Raja我想OP可以在他自己身上加上:-)…另外,似乎主要的问题是如何处理所有行。这并不能检查span的值是否为“0”@Raja我想OP可以在他自己身上加上:-)…另外,似乎主要的问题是如何处理所有行。壁橱将只查找当前行的上一行。壁橱将只查找当前行的上一行。我喜欢您的实现:-)+1谢谢,请描述这行$('td:eq(6)>.PrintReport',this)。切换(text!=“0”)@shaahin当然,检查编辑以获得解释@拉贾优秀;pI喜欢您的实现:-)+1谢谢,请您描述一下这行$('td:eq(6)>.PrintReport',this).切换(text!=“0”)@shaahin当然,检查编辑以获得解释@拉贾优秀;(汉克斯:)在这行中+的用法是什么$('td:eq(6)').find('+.PrintReport').hide()@sahin-在选择器中包含+将为您提供所有元素和类。打印报告在第六列的侧面,因此您不必关心单个td..谢谢:)这行中+的用法是什么$('td:eq(6)').find('+.PrintReport').hide()@sahin-在选择器中包含+将为您提供第六列中的所有elementwith class.PrintReport,因此您不必关心单个td。。