2010-04-02 83 views

回答

0

這是實現你要什麼樣的方式。您正確且高效地使用選擇器。

可能如果你維護一個需要被隱藏的標籤ID的數組,然後動態地構造你的選擇器以便通過ID來查找,那麼它會更快一些。 (即使選擇器可能更長,這樣會更快,通過ID選擇非常快)。

但是,優化不是必需的嗎?我們正在談論快速減輕至雙倍。一個超級愚蠢的jQuery專業版只會做你所做的事情。

0

該代碼看起來很完美;你正在使用:正確可見。

你可以看看jQuery :visible selector help page如果你想知道它究竟是如何工作的,但在幾句話就選擇可見光元素=)

0

嗯,我能想到的是:

$('[id$="AtBaseLevel"]:visible').hide();

這將匹配其ID在AtBaseLevel結尾的任何元素。請注意,縮短並不意味着速度更快,因爲ID查找速度與其速度一樣快。基於屬性的選擇器沒有經過優化。

0

你可以這樣說:

$("#topperAtBaseLevel, #lowerAtBaseLevel, #midAtBaseLevel").filter(":visible").hide(); 

然而,這會導致所有被隱藏,隱藏元素調用.hide()是好的,什麼也沒有錯,所以它可能僅僅是這樣的:

$("#topperAtBaseLevel, #lowerAtBaseLevel, #midAtBaseLevel").hide(); 
+0

感謝超音速回復。 這裏如果我們使用find(),主要的id不會被隱藏,所有的內部嵌套元素將被隱藏,這是再次顯示的問題。 – jaan 2010-04-02 12:51:51

+0

@jaan - 我沒有使用'.find()',我使用'.filter()',它不同:)'.filter()'過濾**匹配的**元素,而不是他們的子元素'.find()'確實。 – 2010-04-02 12:53:35

+0

您在濾鏡內部缺少雙引號。 – rahul 2010-04-02 12:58:59

相關問題