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

时间:2013-11-01 08:29:30

标签: jquery css dom

我很难尝试使用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()只选择一个前一个elem然后停止,但prevUntil也不起作用?

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

我也尝试过:

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

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

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

2 个答案:

答案 0 :(得分:11)

试试这个:

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

Fiddle here.

答案 1 :(得分:2)

你可以试试这个

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

An Example here.