【问题标题】:Jquery Hide table rowsJquery隐藏表格行
【发布时间】:2010-05-22 17:32:03
【问题描述】:

我隐藏了一堆文本框,它工作正常,问题是,文本框在一个表格中,所以我还需要隐藏相应的标签。 结构是这样的

<tr>
<td>
Label
</td>
<td>
InputFile
</td>
</tr>

事实上,如果我隐藏有 fileinput 的行会更容易,有人可以帮忙

【问题讨论】:

  • 你能澄清一下'fileinput'或'InputFile'实际上指的是什么吗?是某个类的“输入类型=”文本”,还是“输入类型=”文件”?

标签: jquery


【解决方案1】:

这可能对你有用...

$('.trhideclass1').hide();

 

<tr class="trhideclass1">
  <td>Label</td>
  <td>InputFile</td>
</tr>

【讨论】:

  • 在我看来,为了维护和可读性,最好保持标记尽可能干净和简洁。
  • (另外,问题的意图肯定是“如何隐藏包含给定元素的元素”,而不仅仅是“如何隐藏具有给定类的元素”)
  • 感谢 Derek,在这种情况下,您的回答是最好的解决方案
  • 非常感谢,这是我不得不对表单进行大量更改的大项目的救命稻草:)
【解决方案2】:

你只需要像这样遍历 DOM 树到最近的&lt;tr&gt;...

$("#ID_OF_ELEMENT").parents("tr").hide();

jQuery API Reference

【讨论】:

  • 我认为应该是 parents(),而不是 parent()
  • 投反对票-1。 parent() 获取第一个元素。 parents() 是正确的用法。
  • @Bobby @ICodeForCoffee 你们是对的;我已经更新了答案
  • parents("tr") 会隐藏上面的任何 tr 。如果您在表格中有表格,则此解决方案不起作用。改用最接近(“tr”)
【解决方案3】:

这应该可以解决问题。

$(textInput).closest("tr").hide();

【讨论】:

    【解决方案4】:

    $('inputFile').parent().parent().children('td &gt; label').hide();

    可以帮助您向上导航两个级别(到 TD,到 TR),向下移动两个级别(该 TR 中的所有 TD 及其 LABEL 标签),在那里应用 hide() 函数。

    如果您想留在 TR 级别并隐藏它们:

    $('inputFile').parent().parent().hide();

    ……就足够了。

    您可以使用 jquery 选择器轻松浏览元素。

    parent 记录在这里: http://api.jquery.com/parent/

    hide 记录在这里: http://api.jquery.com/hide/

    【讨论】:

      【解决方案5】:

      html

      <tr><td><a href="" onclick=hideRow(event)></a></td></tr>
      

      jquery

      function hideRow(event){
        $(event.target || event.srcElement).parents('tr').hide();
      }
      

      【讨论】:

        【解决方案6】:

        如果标签在表格行中,您可以这样做来隐藏该行:

        ('.InputFile').parent().Hide()
        

        您可以根据需要优化选择器,然后获取包含该元素的表格行。

        JQuery 选择器帮助:http://api.jquery.com/category/selectors/

        编辑这是正确的做法。

            ('.InputFile').parents('tr').hide()
        

        【讨论】:

        • -1 输入控件的父级为&lt;td&gt;,隐藏方法为小写
        【解决方案7】:

        使用parents('tr').hide() 有效。但是,如果存在嵌入表,则所有父 tr 行都将被隐藏。在我的例子中,整个表单是隐藏的,因为有很多嵌入的表格。

        【讨论】:

          【解决方案8】:

          如果您希望同时隐藏文本字段和标签,我认为最好的选择是为每个字段分配一个类并像这样隐藏它们:

          jQuery(".labelClass, .inputClass").hide();
          

          【讨论】:

            猜你喜欢
            • 2011-07-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-11-05
            • 1970-01-01
            • 1970-01-01
            • 2012-04-18
            • 2015-11-07
            相关资源
            最近更新 更多