2010-05-22 148 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(); 
}