daulex daulex - 27 days ago 15
HTML Question

jquery find closest previous sibling with class

here's the rough html I get to work with:

<li class="par_cat"></li>
<li class="sub_cat"></li>
<li class="sub_cat"></li>
<li class="par_cat"></li> // this is the single element I need to select
<li class="sub_cat"></li>
<li class="sub_cat"></li>
<li class="sub_cat current_sub"></li> // this is where I need to start searching
<li class="par_cat"></li>
<li class="sub_cat"></li>
<li class="par_cat"></li>


I need to traverse from the
.current_sub
, find the closest previous
.par_cat
and do stuff to it.

.find("li.par_cat")
returns the whole load of
.par_cat
(I've got about 30 on the page). I need target the single one.

Would really appreciate any tips :)

Answer

Try:

$('li.current_sub').prevAll("li.par_cat:first");

Tested it with your markup:

$('li.current_sub').prevAll("li.par_cat:first").text("woohoo");

will fill up the closest previous li.par_cat with "woohoo".

Comments