2013-10-14 53 views
2

我目前正在尋找一種淡入淡出所有元素的方法,而不是手動淡出每個元素。jquery從所有選擇器('*')中排除單個元素

我遇到了jQuery CAM全選擇(「*」),這不正是我想要的:

$('*').delay(0).fadeOut('fast'); 

以上淡出每個頁面上的元素。

我的問題是,有了這個我可以然後只顯示一個特定的元素,然後上面發生?我想展示一個單一的元素,並認爲這將是做事的最佳方式。

有人有什麼想法嗎?

+0

你怎麼知道哪一個元素是一個 –

回答

4
$('*:not("body,html")')// select all expect body and html 
.not(".foo")// now hide our selector ".foo" 
.fadeOut('fast'); 

參考not()也可以使用:not

demo

+0

這似乎不工作? $( '*')不是( '#信息'),延時(0).fadeOut( '快')。; – danyo

+0

等待我會看到並更新它 –

+0

檢查它@danyo –

0

這是棘手的,因爲*選擇也將採取<html><body>標籤本身,任何元素就是其中的一部分。因此,要解決這個問題,就必須排除這些標籤完全然後排除使用.not()方法傳遞一個選擇所需的元素(S):

var excludedTags = ["html", "body"]; 
$("*").not(excludedTags.join(",")).not(".foo").delay(0).fadeOut('fast'); 

這將淡出一切只有當階級元素。

Live test case

相關問題