【问题标题】:jquery nextUntil has elementjquery nextUntil 有元素
【发布时间】:2025-12-13 09:40:01
【问题描述】:

我有一堆这样的元素:

<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');
  }
}

这样的?我知道没有 include 方法,有什么东西可以满足我的需要吗?

谢谢。

结果应该是这样的:

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

编辑:用于快速测试的 jsbin:http://jsbin.com/aqoha/2/edit

【问题讨论】:

    标签: jquery jquery-selectors jquery-traversing


    【解决方案1】:
    $('div').each(function () {
      if ($(this).nextUntil('div').filter('table').length > 0) {
        $(this).addClass('got-a-table');
      }
    });
    

    您需要的是 filter(),而不是 include()。

    【讨论】:

    • 如果你看到这个答案反复出现又消失,那是因为我在改变主意之前一直认为它会起作用。经过实际测试后,我确信这个版本现在可以工作了。
    【解决方案2】:

    试试

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

    【讨论】:

      最近更新 更多