JQuery следующийUntil имеет элемент - PullRequest
2 голосов
/ 14 мая 2010

У меня есть несколько таких элементов:

<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>

Редактировать: jsbin для быстрого тестирования: http://jsbin.com/aqoha/2/edit

Ответы [ 2 ]

2 голосов
/ 14 мая 2010
$('div').each(function () {
  if ($(this).nextUntil('div').filter('table').length > 0) {
    $(this).addClass('got-a-table');
  }
});

Вместо include () вы хотите filter ().

0 голосов
/ 14 мая 2010

1001 * попробовать *

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