2010-08-24 64 views
3

我正在使用電子商務軟件包,並且有些部分我的客戶想禁用隱藏。問題是該軟件包的所有標籤都屬於同一個類,我不知道如何爲了隱藏或禁用它們而定位某些標籤。使用Javascript禁用類?

我有5,想要隱藏第三個,讓我們說。他們在一張桌子上,所以它看起來就像這樣:

<td><span class="lable">Description</span></td> 

有什麼建議嗎?

回答

2
$('.label').eq(2).hide() 

將列表選擇方法如eq()設置爲t他非標準選擇器如:eq。使用jQuery選擇器可以使瀏覽器回退到相對較慢的Sizzle選擇器庫,而不是現代瀏覽器中內置的快速原生querySelectorAll()支持。

+0

+1非常優雅。以及有關發生了什麼的非常有趣的信息。你能指出這些內部知識的發現嗎? – 2010-08-25 00:25:28

+0

第3530行在jquery 1.4.2源代碼中加上[CSS3選擇器](http://www.w3.org/TR/css3-selectors/)規範。不幸的是,jQuery文檔沒有詳細說明對性能的影響,但是使用非CSS選擇器的IMO本身是有問題的。如果後來的CSS版本出現並定義了一個具有略微不同含義的Sizzle/jQuery選擇器,我們都陷入困境。 – bobince 2010-08-25 00:45:03

+0

太棒了。非常感謝你。這很好! – Xtian 2010-08-25 17:34:07

3

既然你已經標記這是jQuery的,那麼eqgtlt選擇可能是你的興趣:

$("tr > td > span[class=lable]:eq(2)").hide(); 

演示:http://jsfiddle.net/6MvnB/

和:http://jsfiddle.net/LD6nU/(@Majid的禮貌)

+0

+1非常好的選擇器,但我稍微改變了你的代碼:'$(「tr> td> span [class = lable]:eq(2)」)。hide();'它隱藏了第三個不像選擇器那樣大於第三。但肯定它仍然是你的答案。鏈接:http://jsfiddle.net/LD6nU/ – 2010-08-24 23:57:00

+0

@Majid - 謝謝。不知何故,我把它藏在我的腦海中,他希望隱藏起來後的所有東西(我想我必須從樣本標記中得到這種看起來像標題行的印象)。 – karim79 2010-08-25 00:06:02