1

私は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

4 に答える 4

1

これはうまくいくはずです:

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

デモ

于 2012-09-06T15:28:08.220 に答える
0

それがどのようprev()に機能するか、あなたはこのように使うことができますprevAll()

jsFiddle

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

また

$('.selected').prevAll('li:not([data-sel="foo"]):first');
于 2012-09-06T15:32:15.430 に答える
0

:hasセレクターは試しましたか?http://api.jquery.com/has-selector/

于 2012-09-06T15:28:06.117 に答える
0

これは機能します:

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

jsFiddle の例

于 2012-09-06T15:37:49.650 に答える