Jquery - .fadeOut除了那些带有这些id的人之外的所有div?

时间:2010-03-31 22:51:45

标签: jquery

除了那些有这三个身份的人之外,我怎么能淡出所有div?

#dontFadeOne
#dontFadeTwo
#dontFadeThree

我在想这样的事情:

$("div").notAnyOf("dontFadeOne","dontFadeTwo","dontFadeThree").fadeOut();

但是我找不到'不是'任何功能。

2 个答案:

答案 0 :(得分:4)

看一下.not()函数:

http://api.jquery.com/not/

由于官方文档非常清楚地解释了这一点,因此它来自API网站:

删除特定元素

.not()方法的第二个版本允许我们从匹配集中删除元素,假设我们之前通过其他方式找到了这些元素。例如,假设我们的列表中有一个ID应用于其中一个项目:

<ul>
  <li>list item 1</li>
  <li>list item 2</li>
  <li id="notli">list item 3</li>
  <li>list item 4</li>
  <li>list item 5</li>
</ul>

我们可以使用本机JavaScript getElementById()函数获取第三个列表项,然后从jQuery对象中删除它:

$('li').not(document.getElementById('notli'))
  .css('background-color', 'red');

此语句更改了项目1,2,4和5的颜色。我们可以使用更简单的jQuery表达式完成相同的操作,但是当例如其他库提供对plain DOM的引用时,此技术非常有用。节点

从jQuery 1.4开始,.not()方法可以将函数作为其参数,与.filter()相同。函数返回true的元素将从过滤集中排除;包括所有其他元素。

答案 1 :(得分:3)

您可以使用not():not

$("div").not("#dontFadeOne, #dontFadeTwo, #dontFadeThree").fadeOut();

或:

$("div").not("#dontFadeOne).not("#dontFadeTwo").not("#dontFadeThree").fadeOut();

$("div:not(#dontFadeOne):not(#dontFadeTwo):not(#dontFadeThree)").fadeOut();