1

私はこれについて頭を悩ませることができません。簡単そうです。

<ul class="steps anchor">
<li><a href="#step-1" class="done" isdone="1" rel="1"><label class="stepNumber">1</label></a></li>
<li><a href="#step-2" class="disabled" isdone="0" rel="2"><label class="stepNumber">2</label></a></li>
<li><a href="#step-3" class="selected" isdone="1" rel="3"><label class="stepNumber">3</label></a></li>
<li><a href="#step-4" class="disabled" isdone="0" rel="4"><label class="stepNumber">4</label></a></li>
</ul>

私が欲しいもの: 現在の Li (class="selected") (=3) を選択し、class="done" を持つ以前の LI の rel を取得したい。

$('ul.steps li a.selected').prev('li').hasClass('done').html()

私はこのように考えて立ち往生しています。多分誰かが私を正しい方向に助けることができますか? ありがとう

編集:クラス= "完了"でLiと言いました。しかし、それはある必要があります: 私が欲しいもの: 現在の a (class="selected") (=3) を選択したい そして、class="done" を持つ前の a の rel を取得したい。

編集2:

<ul class="steps anchor">
<li><a href="#step-1" class="done" isdone="1" rel="1"><label class="stepNumber">1</label></a></li>
<li><a href="#step-2" class="done" isdone="1" rel="2"><label class="stepNumber">2</label></a></li>
<li><a href="#step-3" class="done" isdone="1" rel="3"><label class="stepNumber">3</label></a></li>
<li><a href="#step-4" class="disabled" isdone="0" rel="4"><label class="stepNumber">4</label></a></li>
<li><a href="#step-5" class="disabled" isdone="0" rel="5"><label class="stepNumber">5</label></a></li>
<li><a href="#step-6" class="selected" isdone="1" rel="6"><label class="stepNumber">6</label></a></li>
</ul>

Li 構造を更新しました。今、LI 6 にいるとします。[class='done'] で前の LI に行きたいとします。だから[rel = 3]。アンサーは常に最初の LI を返します (1)。

4

4 に答える 4

2

効率的ではない方法で要素を選択したい場合は、 prevAllall メソッドを使用できます。

$('a.selected').parent().prevAll('li:has("a.done")').find('a').attr('rel');

http://jsfiddle.net/pn72t/

または:

$('a.selected').closest('ul').find("a.done:first").attr('rel')
于 2012-10-18T10:04:49.213 に答える
2
$('ul.steps li a.selected').closest("ul").find("a.done").attr('rel')

ここでフィドルを参照してください:http://jsfiddle.net/CnkNX/1/

于 2012-10-18T10:06:20.993 に答える
1

メソッドを使用getして、'a.done`から任意の要素を取得できます

 $($('a.selected').closest('ul').find("li a.done").get(0)).attr('rel')

jsfiddle: http: //jsfiddle.net/gpznn/2/

于 2012-10-18T09:59:14.100 に答える
1

次のようにできます。

$('ul.steps li a.selected').closest('ul').find("li a.done:first").attr('rel')

フィドル: http://jsfiddle.net/zwLaG/1/

于 2012-10-18T10:08:26.230 に答える