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) 然后想获得前一个 LI 的 rel,它的 class="done"。

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

我被困在这种想法中。也许有人可以在正确的方向上帮助我?谢谢

编辑:我用 class="done" 说 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]。您的 anwsers 总是返回第一个 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 回答