Question

J'ai un tas d'éléments comme ceci:

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

Je dois vérifier si oui ou non il y a un élément de table entre les divs, et le cas échéant faire quelque chose.

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

Quelque chose comme ça? Je sais qu'il n'y a pas de méthode comprennent, est-il quelque chose qui peut me faire ce que je dois?

Merci.

Résultat devrait être comme ceci:

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

Edit: un jsbin pour testign rapide: http://jsbin.com/aqoha/2/edit

Était-ce utile?

La solution

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

Au lieu d'inclure (), vous voulez que le filtre ().

Autres conseils

essayer

$('div').each(function () {
   var table = $(this).next('table');
   if (table) {
       if (table.next('div')){
            // do something.
       }       
   }
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top