cheerio - 选择彼此相邻的两个元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cheerio - 选择彼此相邻的两个元素相关的知识,希望对你有一定的参考价值。

如何选择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>
答案

我不知道cheerio,但在jQuery你可以这样做(虽然它的hacky和可怕):

$("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>

以上是关于cheerio - 选择彼此相邻的两个元素的主要内容,如果未能解决你的问题,请参考以下文章

如何使这两个元素彼此相邻

仅css:将两个项目彼此相邻放置并同时做两个!仅在必要时包装

Twitter bootstrap - 在彼此相邻放置时重叠的前置输入元素

Flex 方向列,但两个子项彼此相邻,桌面顺序不同

Cheerio 没有选择特定的元素

Mailchimp 代码使两个按钮彼此相邻