jquery从All Selector('*')中排除单个元素

时间:2013-10-14 12:50:41

标签: jquery jquery-selectors

我目前正在寻找一种方法来淡出页面上的所有元素,而不是手动淡出每个元素。

我浏览了jQuery All Selector('*'),它完全符合我的要求:

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

以上内容淡出页面上的每个元素。

我的问题是,我可以在上面发生之后才显示某个元素吗?我想展示一个单一的元素,并认为这将是最好的做事方式。

有人有什么想法吗?

2 个答案:

答案 0 :(得分:4)

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

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

<强> demo

答案 1 :(得分:0)

这很棘手,因为*选择器本身也会使用<html><body>标记,并且任何元素都是其中的一部分。因此,要解决此问题,您必须排除这些标记,然后使用传递选择器的.not()方法排除所需的元素:

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

除了带有 foo 类的元素外,这将淡出所有内容。

Live test case