Вопрос

У меня есть куча элементов, как это:

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

Мне нужно проверить, существует ли элемент таблицы между Divs, и если так что-то сделать.

$('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 для быстрого TESTIGN: http://jsbin.com/aqoha/2/Edit.

Это было полезно?

Решение

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

Вместо включения () вы хотите фильтр ().

Другие советы

пытаться

$('div').each(function () {
   var table = $(this).next('table');
   if (table) {
       if (table.next('div')){
            // do something.
       }       
   }
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top