jquery找到最近的没有类的兄弟姐妹

Nat*_*ais 9 css jquery dom

我很难接受使用jQuery来获取最接近的前一个元素'class'并不包含类'subsection'

示例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>
Run Code Online (Sandbox Code Playgroud)

我试过了:(其中$ 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"])');
Run Code Online (Sandbox Code Playgroud)

现在我发现prev()只选择一个前一个elem然后停止,但prevUntil也不起作用?

var $slide = $subsection.prevUntil('.slide').not('.subsection');
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

var $slide = $subsection.prevAll('.slide').not('.subsection');
Run Code Online (Sandbox Code Playgroud)

但这让我得到了第一个id为p1的幻灯片元素.

如果有人有任何提示我会很感激...有谁能阻止我去克雷克雷?8 |

Hir*_*ral 12

试试这个:

var a = $("#p32").prevAll(".slide").not(".subsection").first();
alert($(a).text());
Run Code Online (Sandbox Code Playgroud)

在这里小提琴