2011-12-12 102 views
3

我叫Stylish一個插件,它允許你添加你自己的樣式表來更改網站用戶界面的大廠風範的元素。現在,我有一個問題,選擇具有指定的元素

我能選擇具有特定元素的元素?

例子:

<div class='visitor_message'> 
<div class='user_info'> Visitor Message Poster Info </div> 
<div class='deleted_message'> This message is deleted by foobar </div> 
</div> 
<div class='visitor_message'> 
<div class='user_info'> Visitor Message Poster Info </div> 
<div class='message'> Undeleted Content </div> 
</div> 

我在vBulletin的工作風格,以刪除一個元素,包含與刪除類的元素,所以較軟的郵件將得到徹底清除。如果我只是藏.deletedmessage,它仍然會留下信息欄的後面。

於是開門見山,是否有可能選擇具有特定元素的元素?

我想選擇一個包含.deletedmessage .visitor_message,這可能嗎?如果是,如何?如果不是,有人可以解釋如何在jQuery或JavaScript上做到這一點?

回答

3

至於CSS,你基本上是要求一個「祖先選擇。」至少在CSS3中沒有這樣的東西。非常粗略的解釋是,CSS通常看起來「入」而不是出來。我記得在某個地方閱讀,讓選擇器看父母/祖先也會有顯着的性能影響,但目前無法提供引用。

使用jQuery,你最好use .has() to achieve this

$('.visitor_message').has('.deletedmessage') 

(注意我展示你的選擇位只有那裏。)

+2

實際上存在CSS4草案的祖先選擇。 (或者具體地說,是一個「目標」選擇器,它指定一個目標元素,而不是通常的最右側)。 – DisgruntledGoat

+0

有趣。這遠遠不夠實際用途,但我刪除了「從不」。 –

相關問題