9

我很难用jQuery获取不包含类'subsection'的类'slide'的最接近的前一个元素

示例 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');

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

如果有人有任何提示,我将不胜感激......谁能阻止我去克雷克雷?8-|

4

2 回答 2

13

尝试这个:

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

在这里拉小提琴。

于 2013-11-01T08:54:12.723 回答
2

你可以试试这个

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

这里有一个例子。

于 2013-11-01T08:39:56.337 回答