jQuery:如果其在自我之上,则添加标签的样式



我想将.addClass("someClass"转到<blockquote>,如果它的<figure>上方具有CC_3,则想:

<figure class="hello"> world </figure>
<blockquote> Lorem </blockquote>

因此,只有当<figure>标签就位于其上方时,才能像div一样分开标签

是可能的吗?

假设这是在 <blockquote>元素之前先于<figure>之前的样式,然后您可以简单地使用CSS:

figure + blockquote {
    border-color: red; /* or whatever */
}

section {
  border: 1px solid #000;
  margin: 0 0 1em 0;
}
blockquote {
  border: 1px solid #000;
}
figure + blockquote {
  border-color: #f00;
}
<section>
  <figure>This is a figure</figure>
  <blockquote>And this is an immediately-following blockquote.</blockquote>
</section>
<section>
  <blockquote>This is a blockquote.</blockquote>
  <figure>And this is a figure following a blockquote</figure>
</section>
<section>
  <figure>Another figure</figure>
  <div>a div</div>
  <blockquote>And this is a blockquote.</blockquote>
</section>

参考:

  • 邻接 - 兄弟姐妹(+)组合器。
$('figure.hello + blockquote').addClass('someClass');

来自jQuery的文档:

下一个相邻选择器(" prev next")

选择与立即匹配的所有接下来元素 在兄弟姐妹"上一条"之前。

可以从已知类中工作...最简单

$('figure.hello').next('blockquote').addClass("someClass");

它的工作方式是,如果找不到任何一个选择器,什么也不会发生,并且仅适用于folloing同胞为blockuote

最新更新