Pregunta

Tengo un montón de elementos de la siguiente manera:

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

Tengo que comprobar si hay o no un elemento de mesa entre los divs, y si es así hacer algo.

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

Algo como esto? Sé que no es la inclusión del método, ¿hay algo que me puede conseguir lo que necesito?

Gracias.

El resultado debe ser como la siguiente:

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

Editar: un jsbin para testign rápida: http://jsbin.com/aqoha/2/edit

¿Fue útil?

Solución

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

En lugar de include (), desea que el filtro ().

Otros consejos

try

$('div').each(function () {
   var table = $(this).next('table');
   if (table) {
       if (table.next('div')){
            // do something.
       }       
   }
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top