选择带有.not()的项目

时间:2015-04-14 00:36:14

标签: jquery

我需要能够在悬停时选择div元素,但不能选择跨越类notMe的div元素。

<div class="myEm">
    <span class="lineItem"></span> em 1
</div>
<div class="myEm">
    <span class="lineItem notMe"></span> em 1
</div>
<div class="myEm">
    <span class="lineItem"></span> em 1
</div>

似乎无法弄清楚如何跳过那一个。尝试:

 $('.myEm').not('.notMe').hover(
        ...
 );

我是否需要使用.each()并检查该类的孩子?

2 个答案:

答案 0 :(得分:4)

这将有效:

$(".myEm:not(:has(.notMe))")

这会排除包含.notMe的元素。


文档:

答案 1 :(得分:0)

你很可能会使用Mooseman的方法,因为它简短而简单,这只是我能想到的另一种方式..

$('.myEm').hover(

if( $( this ).children( "span.notMe" ).length ){

       return false;

     } else {

      // do your stuff here...
  }
);