2

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

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

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

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

我的问题是,在发生上述情况之后,我可以只显示一个特定的元素吗?我想展示一个单一的元素,并认为这是最好的做事方式。

有人有什么想法吗?

4

2 回答 2

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

引用not()也可以使用:not

演示

于 2013-10-14T12:52:35.093 回答
0

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

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

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

现场测试用例

于 2013-10-14T13:08:20.873 回答