我目前正在寻找一种方法来淡出页面上的所有元素,而不是手动淡出每个元素。
我浏览了jQuery All Selector('*'),它完全符合我的要求:
$('*').delay(0).fadeOut('fast');
以上内容淡出页面上的每个元素。
我的问题是,我可以在上面发生之后才显示某个元素吗?我想展示一个单一的元素,并认为这将是最好的做事方式。
有人有什么想法吗?
答案 0 :(得分:4)
$('*:not("body,html")')// select all expect body and html
.not(".foo")// now hide our selector ".foo"
.fadeOut('fast');
<强> demo 强>
答案 1 :(得分:0)
这很棘手,因为*
选择器本身也会使用<html>
和<body>
标记,并且任何元素都是其中的一部分。因此,要解决此问题,您必须排除这些标记,然后使用传递选择器的.not()
方法排除所需的元素:
var excludedTags = ["html", "body"];
$("*").not(excludedTags.join(",")).not(".foo").delay(0).fadeOut('fast');
除了带有 foo 类的元素外,这将淡出所有内容。