2011-06-16 48 views
0

我有一個表中的行具有相互的自定義​​屬性。我想隱藏所有的表格行,除了使用jquery(或js)的父行。我怎麼能這樣做呢?如何使用jquery或js隱藏具有相同ID的所有錶行?

<table> 
<tr group="1">Parent</tr> 
<tr group="1">Child</tr> 
<tr group="1">Child</tr> 
<tr group="1">Child</tr> 
</table> 

編輯:哇大錯字對我來說,我非常抱歉,我的意思是自定義屬性。更新!

+4

實際上,HTML與具有相同ID的多個元件是無效的。因此,您的代碼無效。 – Tadeck 2011-06-16 22:14:06

+0

更新了我的文章。 – MacMac 2011-06-16 22:30:19

+0

您的HTML仍然無效。 TR元素沒有組屬性,不能將文本作爲chlid節點,它們必須有TH或TD。 – RobG 2011-06-16 23:06:16

回答

1

有了新的例子,它是可能使用jQuery的atribute equals選擇器(here)。看看this tasty fiddle

基本上,你的選擇,你需要這樣的:

$("table tr[group='2']").hide()

當然,這是定製的。最重要的一點是tr[group='2']

編輯

This updated fiddle應該工作。如果有人可以發佈更好的方式,請做。

它增加了對與此上面的行:

$("table tr[group='2']").filter(":not(:first)").hide();

+0

這是目前我所擁有的,但我需要隱藏除父行之外的所有內容。 – 2011-06-16 22:34:28

+0

太棒了,效果很好。 – 2011-06-16 22:45:30

+0

沒問題:-)很高興我可以幫忙。 – Bojangles 2011-06-17 10:43:08

2

他們不能有相同的ID,ID標記必須是唯一的

,你可以簡單地使用:$("table tr:gt(0)").hide()
(這僅適用於如果你沒有嵌套表)

0

你應該不使用ID,只在元素在頁面上重複時使用類,因爲ID指的是唯一的,每個頁面只能使用一次。更換id屬性class,然後你可以使用此代碼:

$('table tr[group=1]').hide(); 
0

無法有兩個HTML元素兩次使用相同的ID。此外,你不能用一個數字開始一個id。

如果你可以改變你的HTML標記使用類,這將是這樣的:

<table> 
    <tr class="one">Parent</tr> 
    <tr class="one">Child</tr> 
    <tr class="one">Child</tr> 
    <tr class="one">Child</tr> 
</table> 

然後,你會做這樣的:

$('.one').hide(); 
相關問題