2010-05-14 59 views
1

我有這樣一羣元素:jQuery的nextUntil具有元素

<div></div> 
<span></span> 
<table></table> 
<div></div> 
<span></span> 
<div></div> 

我需要檢查是否有在的div之間的表格元素,如果是做一些事情。

$('div').each(function() { 
    if ($(this).nextUntil('div').include('table')) { 
    $(this).addClass('got-a-table'); 
    } 
} 

這樣的事情?我知道沒有包含方法,有什麼可以讓我得到我需要的東西嗎?

謝謝。

結果應該是這樣的:

<div class='got-a-table'></div> 
<span></span> 
<table></table> 
<div></div> 
<span></span> 
<div></div> 

編輯:快速testign一個jsbin:http://jsbin.com/aqoha/2/edit

回答

1
$('div').each(function() { 
    if ($(this).nextUntil('div').filter('table').length > 0) { 
    $(this).addClass('got-a-table'); 
    } 
}); 

而不是包括(),你想過濾器()。

+0

如果你已經看到了這個答案似乎並反覆消失,那是因爲我一直在想這是將之前我改變主意的工作。經過實際測試的東西,我相信這個版本現在工作。 – erisco 2010-05-14 07:32:59

0

嘗試

$('div').each(function() { 
    var table = $(this).next('table'); 
    if (table) { 
     if (table.next('div')){ 
      // do something. 
     }  
    } 
}); 
+0

我不相信那些作品:http://jsbin.com/aqoha/2/edit – Mark 2010-05-14 07:31:14