2014-10-17 49 views
-3

我想在遇到另一個元素後停止搜索特定的子元素。jQuery搜索子元素,但不與某些div

$("parent").find("children").dontSearchWithin("nothere"); 

基本上我想選擇所有的兒童元素,但不是在特定div內的兒童元素。

這裏有一個例子http://codepen.io/Jarolin/pen/hCqAa

我不想選擇是「不這裏」元素內的跨度。

<div id="parent"> 
    <span>FIND ME</span> 
    <span>FIND ME</span> 
    <span>FIND ME</span> 
    <span>FIND ME</span> 

<div id="not-here"> 
    <span>IGNORE</span> 
    <span>IGNORE</span> 
    <span>IGNORE</span> 
</div> 

而且這可能有更多的子元素。而跨度不一定是父母的直接子女。可以是父元素的子元素的子元素的子元素。如果讓SENCE

+0

您的HTML缺少關閉div標記。 – j08691 2014-10-17 17:26:39

+0

它不是我的實際項目中的HTML。只是一個簡單的錯誤。 – UserDy 2014-10-17 17:35:51

回答

1

您可以簡單地使用not()過濾選擇:

var spans = $('#parent').find('span').not('#not-here span'); 
 

 
spans.css('color', '#f90');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="parent"> 
 
    <span>FIND ME</span> 
 
    <span>FIND ME</span> 
 
    <span>FIND ME</span> 
 
    <span>FIND ME</span> 
 

 
    <div id="not-here"> 
 
    <span>IGNORE</span> 
 
    <span>IGNORE</span> 
 
    <span>IGNORE</span> 
 
    </div> 
 
</div>

Referencees: