jquery搜索特定元素并添加类

时间:2014-04-03 09:26:19

标签: jquery css3 find element addclass

我正在寻找jquery(或CSS3?!)中的一种方法来检查所有.vertical类元素,如果在OR之前有另一个具有相同类.vertical的元素。

请检查,我想在提到的元素上添加.solo类:

<figure>
<figure class="vertical" ADD SOLO CLASS>
<p>
<figure>
<h1>
<p>
<figure class="vertical">
<figure class="vertical">
<figure>
<p>
<figure class="vertical">
<figure class="vertical">
<figure class="vertical">
<figure>
<figure class="vertical">
<figure class="vertical">
<figure>
<figure class="vertical" ADD SOLO CLASS>
<figure>
<figure>

非常感谢你的帮助。

2 个答案:

答案 0 :(得分:1)

一种可能的方法:

$('.vertical').filter(function() {
  var $this = $(this);
  if (!
    ( $this.next().is('.vertical') || $this.prev().is('.vertical') )
  ) {
    $this.addClass('solo');
  }
});

Demo。请注意更改:我已将所有<figure>元素(以及其他一些元素,如<h1>)关闭,因为与<p>不同,它们确实需要结束标记。

答案 1 :(得分:0)

var not = $('.vertical + .vertical');
$('.vertical').not(not.add(not.prev())).addClass('solo');

FIDDLE