如何选择给定类的前一个元素

时间:2012-09-06 15:26:42

标签: javascript jquery

我有一个UL列表:

<ul>
  <li data-sel='foo'></li>
  <li></li>
  <li data-sel='foo'></li>
  <li class='selected'></li>
  <li data-sel='foo'></li>
 </ul>

我可以使用li.selected选择器

访问data-sel=foo的第一个没有属性:not的元素
var element = $('.selected').prev("li:not([data-sel='foo'])");

但是如何才能访问具有li.selected属性的data-sel=foo的前一个元素?

4 个答案:

答案 0 :(得分:1)

这应该可以正常工作:

var element = $('.selected').prev("li[data-sel='foo']");

Demo

答案 1 :(得分:0)

您是否尝试过:has选择器? http://api.jquery.com/has-selector/

答案 2 :(得分:0)

这就是prev()的工作原理,您可以像这样使用prevAll()

jsFiddle

$('.selected').prevAll('li').not('[data-sel="foo"]').first();

OR

$('.selected').prevAll('li:not([data-sel="foo"]):first');

答案 3 :(得分:0)

这有效:

var element = $('.selected').prevAll("li[data-sel='foo']")[0];

<强> jsFiddle example