2010-05-22 108 views
28

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

<tr> 
<td> 
Label 
</td> 
<td> 
InputFile 
</td> 
</tr> 
其实

它只是比较容易,如果我躲具有的FileInput行,有人可以帮助请

+1

你能清楚地了解到 '的FileInput' 或 'INPUTFILE' 实际上是指?它是一个'输入类型='文本''与某个类,或'输入类型=“文件”'? – 2010-05-22 17:43:31

回答

56

这可能为你工作...

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

 

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

在我看来,最好保持标记尽可能干净和简洁,以便维护和可读性。 – 2010-05-22 17:51:45

+2

(此外,问题的意图当然是'我如何隐藏包含给定元素的元素'而不仅仅是'如何隐藏给定类的元素') – 2010-05-22 17:53:01

+1

感谢德里克,您的回答是最好的解决方案这种情况下, – tomasz 2010-05-22 19:11:44

1

如果标签表中的行,你可以做到这一点,以隐藏的行:

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

,因为你需要您可以优化您的选择,然后获取包含该元素的表行。

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

编辑这是做了正确的道路。

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

-1输入控件的父代将是'​​',隐藏方法是小写 – 2010-05-22 17:37:48

20

你只需要DOM树遍历到最近<tr>是这样的...

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

jQuery API Reference

+1

我认为应该是父母(),而不是父母() – 2010-05-22 17:39:34

+0

向下投票-1。 parent()接受第一个元素。父母()是正确的用法。 – ICodeForCoffee 2010-05-22 17:41:13

+0

@Bobby @ICodeForCoffee你们是对的;我已经更新了我的回答 – 2010-05-22 17:43:31

2

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

可以帮助您浏览向上两级(到TD,到TR)移动两级回落(所有TD的在TR和他们的标签标签),将隐藏()函数存在。

如果你想留在TR水平和

隐藏起来:

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

...就足够了。

你可以很容易地使用jquery选择器浏览元素。

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

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

0

我觉得你最好的选择,如果你需要双方的文本字段和标签同时隐藏是一个类分配给每个和隐藏他们是这样的:

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

使用​​的作品。但是,如果存在嵌入表格,则所有父行tr行将被隐藏。在我的情况下,整个表单是隐藏的,因为有很多嵌入表格。

8

这应该可以做到。

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

HTML

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

jQuery的

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