cheerio - выберите два элемента рядом друг с другом - PullRequest
0 голосов
/ 11 апреля 2019

Как выбрать a элементов, но только когда два рядом друг с другом ?

<div>
 <a></a>     <---- without this one
 <irrelevant></irrelevant>
 <a></a>     <---- These two only
 <a></a>     <----
 <irrelevant></irrelevant>
 <a></a>     <---- and without these three
 <a></a>
 <a></a>
 <irrelevant></irrelevant>
 <a></a>     <---- and without this one 
</div>

1 Ответ

1 голос
/ 11 апреля 2019

Я не знаю насчет cheerio, но в jQuery вы можете сделать это (хотя это смешно и ужасно):

$("div a").filter(function( index ) {
  var $this = $(this);
    return (
    $this.next("a").length>0 && //next is an a
    $this.next("a").next("a").length==0 &&  //next , next is not an a
    $this.prev("a").length==0 // prev is not an a
    ); 
  })
  .css( "background-color", "red" )
  .next("a")
  .css( "background-color", "red" );
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
 <a>n</a> 
 <irrelevant></irrelevant>
 <a>y</a>
 <a>y</a>
 <irrelevant></irrelevant>
 <a>n</a>
 <a>n</a>
 <a>n</a>
 <irrelevant></irrelevant>
 <a>n</a>
</div>
...