2012-08-12 48 views
3

我正在寻找一个jQuery选择哪个选择哪个不是由特定的div包裹所有IMG元素(带班。特别或.dontSelect)jQuery选择不“包装”元素

例如我的HTML代码:

<div class="special"> 
    <ul> 
     <li> 
      <img id="1"></img> 
     </li> 
    </ul> 
</div> 
<div> 
    .... 
      <img id="2"></img> 
    .... 
      <div class="dontSelect"> 
       <img id="3"></img> 
      </div> 
</div> 

在这个例子中,只应选择id为2的img,因为1和3是“包裹”的。

感谢您的帮助

回答

1

可以使用filter方法:

var $imgs = $('img').filter(function(){ 
       return $(this).closest('.dontSelect, .special').length === 0 
      }) 
+0

感谢这个工作:) – 2012-08-12 18:37:54

+0

@Evil_skunk欢迎您:) – undefined 2012-08-12 18:38:39

3

没有选择为,但你可以选择所有的图像,并将其筛选:

$("img").filter(function(){ 
    return !$(this).closest(".special,.dontSelect").length 
}).remove(); 

//Will remove the image with id="2" 
+0

感谢这个工作太:) – 2012-08-12 18:38:41

0

尝试:

$('*:not(.dontSelect), *:not(.special)').find('img') 

甚至

$('*:not(.dontSelect, .special) img')