jquery найти ближайший предыдущий брат, который не имеет класса

Я в тупике, пытаясь получить ближайший предыдущий элемент с классом "слайд", который не содержит класс "подраздел" с помощью jQuery

пример HTML:

<section id="p1" class="slide"></section>
<section id="p2" class="slide"></section>
<section id="p3" class="slide"></section> <!--I AM TRYING TO GET THIS ELEM -->
<section id="p31" class="slide subsection"></section>
<section id="p32" class="slide subsection"></section> <!--I AM HERE -->
<section id="p4" class="slide"></section>

Я пробовал: (где $ subsection-элемент, указанный выше)

var $slide = $subsection.prev('.slide').not('.subsection');
var $slide = $subsection.prev('.slide:not(".subsection")');
var $slide = $subsection.prev('.slide').not("[class='subsection']");
var $slide = $subsection.prev('.slide:not([class="subsection"])');

теперь я узнал, что prev() выбирает только один предыдущий элемент, а затем останавливается, но prevUntil тоже не работает?

var $slide = $subsection.prevUntil('.slide').not('.subsection');

Я тоже пробовал:

var $slide = $subsection.prevAll('.slide').not('.subsection');

но это дает мне самый первый элемент слайда с идентификатором p1.

если у кого-нибудь есть какие-либо советы, я был бы признателен... Кто-нибудь может остановить меня? 8-|

2 ответов


попробуйте это:

var a = $("#p32").prevAll(".slide").not(".subsection").first();
alert($(a).text());

скрипка здесь.


вы можете попробовать этот

$('.subsection').prev('.slide:not(".subsection")');

пример здесь.