2014-10-06 38 views
2

我想淡出.wrapper2 div里面的每个元素,其标题不是title =“webdesign”。 我试过这样的东西某些div内的jQuery属性选择器

$('.wrapper2:not([title=webdesign])').fadeOut("slow"); 

我做错了什么?

编辑// 例如HTML

<div class="wrapper2"> 
      <div class="showImg" title="webdesign"> 
        <a href="#"><div class="overlay"> 
         <div class="contTxt"><span class="topTxt">Ward WP Theme</span><br><span class="topTxt2">Logotype, Webdesign</span></div> 
        </div></a> 
        <img src="http://lorempixel.com/g/400/300/city" alt="" /> 
      </div> 
      <div class="showImg"> 
        <a href="#"><div class="overlay"> 
         <div class="contTxt"><span class="topTxt">Ward WP Theme</span><br><span class="topTxt2">Logotype, Webdesign</span></div> 
        </div></a> 
        <img src="http://lorempixel.com/g/400/300/nightlife" alt="" /> 
      </div> 
</div> 

EDIT2 // 这个工作

$(".wrapper2 > [title!=webdesign]").fadeOut("slow") 

回答

0

您可以使用子选择>得到的.wrapper2标题的孩子是不是网页设计

$('.wrapper2 > :not([title=webdesign])').fadeOut("slow"); 
+0

这是它的一部分,在内部包装器2中有子标题,例如标题。网页设计,这些都有子div和元素。那些子分区也变得隐藏,我怎么才能淡出.wrapper2的直接细分而不是它们的内容? – 2014-10-06 03:35:27

+0

你能发表一个html的例子吗 – Musa 2014-10-06 03:37:01

+0

如果你想隐藏的所有div都是'.wrapper2'的孩子,也就是说它们都在下一级,那么你可以使用children combinator。 – Musa 2014-10-06 03:42:16

0
$('.wrapper2:not([title=webdesign])') 

是返回对象的集合选择。即使该集合只包含一个对象。 如果你确信只有一个对象,这样做:

$('.wrapper2:not([title=webdesign])')[0].fadeOut("slow"); 

否则,使用each()

http://api.jquery.com/each/

此外,还要确保您的seector是正确的,因为它是非常复杂的。您可以使用

console.log($('.wrapper2:not([title=webdesign])')); 

,以确保它返回你所需要的

+0

顺便说一句,jquery文档关于这个:not()选择器说:.not()方法最终会提供更多可读选择,而不是将复杂选择器或变量推送到:not()选择器过滤器。在大多数情况下,这是一个更好的选择。 – ztrange 2014-10-06 03:16:01