2016-09-15 47 views
0

我需要隱藏使用jQuery的HTML表格的一些列。我使用下面的代碼:jQuery的nth子選擇器問題

$('#my-table tr td:nth-child(7),th:nth-child(7)').hide() 

的代碼工作,它的隱藏表的列,但不尊重表id選擇,它採用當前文檔中的所有表的變化。

我該如何改變才能使其按預期工作?

+7

'$('#我的表TR TD:第n個孩子(7),#我的表個:第n個孩子(7)')' - 你必須每次都聲明外部ID,它不能猜到這就是你的意思 –

+0

上面的評論很可能是你的問題。你錯過了第二個選擇器上的ID – Huangism

+0

謝謝,它現在正在工作! @DarrenSweeney –

回答

2

你需要指定id兩個選擇,否則th:nth-child(7)它會隱藏th:nth-child(7)你可能在你的代碼

$('#my-table tr td:nth-child(7), #my-table th:nth-child(7)').hide() 

您也可以通過使用find()方法

簡化這個
$('#my-table tr').find('td:nth-child(7), th:nth-child(7)').hide() 

編輯

如所指出的@A. Wolff這可以只使用這甚至更加簡化:

$('#my-table tr > :nth-child(7)').hide() 
+0

謝謝!,這與Darren上面提供的答案是一樣的。既然這是這個問題的第一個答案,我會在5分鐘之內接受它是正確的。對不起,SO時間限制。 –

+0

難道不夠:$('#my-table tr:nth-​​child(7)')。hide()'?!因爲'tr'的孩子只能是'td'或'th'(或'template',但它不會顯示) –

+0

@ A.Wolff是的,我會把它加到我的答案中,謝謝。 – dippas

1

您可以使用comma separated multiple selectors但它應該是完整的選擇。

$('#my-table tr td:nth-child(7),#my-table th:nth-child(7)') 

find()方法具有多個內部元件選擇

$('#my-table tr').find('td:nth-child(7),th:nth-child(7)')