2010-03-31 98 views
0

我有一個表格,每行有13個TD元素。當我切換鏈接時,我想顯示並隱藏其中的前10個。這10個TD元素都具有前綴「foo」的ID和其位置的兩位數字(例如「foo01」)。在整個表格中選擇它們的最快方法是什麼?更快的jQuery選擇器,用於查找多個TD元素

$("td:nth-child(-n+10)") 

$("td[id^=foo]") 

還是值得連接所有的IDS?

$("#foo01, #foo02, #foo03, #foo04, #foo05, #foo06, #foo07, #foo08, #foo09, #foo10") 

是否還有其他方法我應該考慮?

+1

你確實有性能問題,或者你只是好奇嗎? – womp 2010-03-31 21:46:41

+0

此表中有多少行?這些ID只能使用一次,否則您的HTML無效。 – 2010-03-31 21:55:13

+0

你說得對,當然,這些ID只能使用一次。我正在清理一些不遵守該規則的代碼。我想我需要先弄清楚HTML的結構,然後才能找出爲什麼JavaScript啓用的行爲沒有做正確的事情。 – 2010-03-31 23:03:35

回答

1

使用此

$("td:lt(10)") 

我這樣說是因爲你有IDS其中應該是唯一的,這意味着一行。

您也可以將$("tr").find("td:lt(10)")用於多行......但保持這些ID的唯一性。

但請記住,在這裏,選擇器的速度將有最小影響在這裏。重新繪製表格意味着瀏覽器進行大量的迴流計算(這一列是基於所有文本的寬度,包裝等等)。 這就是在這個操作中會花費你什麼時間,選擇器不會有巨大的性能影響,因爲絕大多數處理時間會在運行後花費。

+0

感謝您的意見。我猜在$(「tr」)的上下文中的查找允許我在單行的td元素中使用少於選擇符。 – 2010-03-31 23:00:32

1

如果您將其全部添加到一個類中,該怎麼辦?或者你可以使用「rel」也許......只是認爲有一個共同的標識符可能會加快速度。

+0

我其實很喜歡給予我隱藏/展示一個類以識別它的所有內容的想法。 – 2010-03-31 23:00:58