2010-05-14 67 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