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

Javascript 如何选择给定类的上一个元素,javascript,jquery,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

我有一份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

您是否尝试了
:has
选择器

您是否尝试了
:has
选择器

这应该可以正常工作:

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

这应该可以正常工作:

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

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

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

这项工作:

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

这项工作:

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

这不是
.prev
的工作方式:。这不是
.prev
的工作方式:。我认为
.has
不起作用:“将匹配的元素集减少到那些具有与选择器或DOM元素匹配的后代的元素。”。我认为
.has
不起作用:“将匹配的元素集减少到那些具有与选择器或DOM元素匹配的后代的元素。”。
var element = $('.selected').prevAll("li[data-sel='foo']")[0];